1,传统的web应用(多页面应用)
传统多页面是由后端控制一个 url 对应一个 html 文件,页面之间的跳转需要根据后端给出的 url 跳转到新的 html 上,几乎每一个响应动作都会刷新整个页面。
- 由多个完整页面构成
- 页面之间的跳转需要重新加载资源,这样就不能很好的重用公共文件
- 页面切换加载缓慢,流畅度不够,用户体验比较差
2,单页面应用(SinglePage Web Application,SPA)
单页面应用(single page application),就是只有一个页面的应用,页面的刷新和内部子页面的跳转完全由 js 来控制。
- 由一个外壳页面和多个页面片段组成
- 用 js 定义路由、根据路由渲染页面、控制页面的跳转,这是单页面应用最基本的特点
- 所有文件只会加载一次,最大限度重用文件,并且极大提升加载速度,让 web app 有了 native app 的流畅体验
- 完全的前端组件化,前端开发不再以页面为单位,更多地采用组件化的思想,代码结构和组织方式更加规范化,便于修改和调整
3,SPA的缺点
- 在SPA中,通常一开始就会加载所有必需的代码(HTML,JavaScript和CSS),有时候考虑到首屏加载太慢会按需加载,按需加载就是按照当前呈现的不同页面加载不同的文件,而不是最开始就把所有文件都加载出来,从而避免首屏加载很慢。
- 不利于搜索引擎优化(SEO),可利用服务器端渲染(SSR)优化