单页面应用(SPA)
2019-03-05 本文已影响0人
胜过夜的美
单页面应用(Single Page Application)
概念
通过动态重写当前页面来与用户交互,而非传统的从服务器重新加载整个新页面。这种方法使应用程序更像一个桌面应用程序,解决浏览器前进后退等机制被破坏等问题。并且页面访问会被浏览器保存。
优势:前后端职责分离,架构清晰:前端进行交互逻辑,后端负责数据处理。
劣势:初始加载脚本较大,首屏空白时间较长,不利于搜索引擎优化。
比起一般的简单页面,SPA 最大的问题,就是在初始化之时引入大量框架方案脚本。
页面实现方法:
1、node+html5实现
2、react/vue等MVVM框架实现
性能优化
(1)快速启动-极大提升加载速度
(2)根据路由拆分-减少初始加载体积
仅在需要进入对应路由时,对应组件才会被加载进来。
(3)打包公共 Bundle-提高复用性&缓存命中率
(4)组件预加载-减少页面切换时间
当首屏加载完毕后,设备&网络处于空闲状态,可以对其他路由组件进行预加载,以便提升页面切换性能。
(5)按需打包工具库,降低 Bundle 体积
(6)降低首屏渲染时间,极大提升体验
可以将访问的页面index.html缓存起来,下次打开时候优先利用缓存,再发起请求更新缓存。这使得 SPA 应用几乎不需要额外时间便可加载应用首屏文档流。
SPA分析
(1)初次加载的速度
单页应用的第一页加载会比基于服务器的应用慢。这是因为首次加载必须先拿到框架和应用程序的代码,再在浏览器中呈现所需的视图。基于服务器的应用程序只需将所需的HTML推送到浏览器,从而减少了延迟和下载用时。
(2)加快页面加载速度
有一些方法可以加快单页应用的初次加载速度,比如采用多项缓存措施、需要时再加载某些模块(懒加载)。
(3)页面生命周期
单页应用在初始页面加载时被完全加载,然后页面区域被替换或更新为按需从服务器加载的新页面片段。为避免过度下载未使用的功能,单页应用通常会逐渐下载更多内容,如所需要的功能、页面的一小块,或者完整的一页。
传统的页面应用
传统的web应用中,浏览器只是作为展示层,路由、服务调用、页面跳转都是服务端来处理的。也就是MVC的架构都是放在后端的,只有V这一层,将页面通过网络发送到浏览器端,渲染给用户。重服务端。