单页面应用(SPA)是指只有一个主页面的应用,浏览器一开始要加载所有必需的 html、js、css。所有的页面内容都包含在这个主页面中。但在编写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。
单页面应用的优点有以下几个。
(1)用户体验良好。不需要重新刷新页面,减少TTFB的请求耗时,数据也是通过Ajax异步获取,页面显示流畅。
(2)前后端分离。前端负责界面显示,后端负责数据存储和计算,各司其职,不会把前后端的逻辑混杂在一起。
(3)减轻服务端压力,服务器只需要提供API接口,不用管理页面逻辑和页面的拼接,吞吐能力会提高几倍。
(4)共用一套后端程序代码,适配多端同一套后端程序代码,不用修改就可以适用于 Web、手机、平板。
单页面应用的缺点有以下几个。
(1)不利于SEO的优化。因为页面数据都是前端异步加载的方式,不利于搜索引擎的抓取。
(2)首屏加载过慢。单页面首次加载,需要将所有页面所依赖的CSS和JS合并后统一加载,所以CSS和JS文件会较大,影响页面首次打开的时间。