单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。
优点:
1、分离前后端关注点,前端负责界面显示,后端负责数据存储和计算,各司其职,不会把前后端的逻辑混杂在一起;前后台分离开发模式。
2、减轻服务器压力,服务器只用出数据就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍;
3、同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端;
- 服务器压力变小,后台不需要负责模板渲染,输出页面工作。ajax实现页面刷新,不需要重新加载整个页面。
缺点:
1、SEO难度大,由于所有的内容都是在一个页面中动态替换显示,现在可以通过Prerender等技术解决一部分;
2、前进后退由路由管理,由于单页面应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能,所有页面的切换需要自己建立堆栈管理;
3、初次加载耗时多,为实现单页面web应用功能及显示效果,需要在加载页面的时候将js,css统一加载,部分页面按需加载;