结合了各种说法,自己归总一下
传统的网页应用
传统的网页应用,浏览器作为展示层,路由处理、服务调用、页面跳转都由后端处理,即便有ajax,但也并不是标准的单页面应用。
这种网页应用的重心都在后端,后端几乎包揽了MVC,浏览器端仅是一个展示层
单页面应用
MVC前置到浏览器端,前端负责路由,各个小的组件组成页面,在路由变化时,不刷新整个页面,仅仅是组合小的组件,替换变化部分。甚至数据层也在前端,前端封装后端API,这种情况下,后端只是提供操作数据库的API
单页面应用的优点
- 不刷新页面,相应快速,提升了用户体验
- 前端组件化,代码的结构和组织更加规划化,利于修改和维护,并且可以开发独立的组件库,开发时直接使用即可,极大提高了开发效率
- API共享,如果要多端开发(浏览器、微信、安卓、ios),只需要修改容易变化的前端UI,对后端API的调用基本是相同的,极大的降低了开发成本
单页面应用的缺点
- 首次加载大量资源
- 提高了前端的技术门槛
- 不利于SEO,因为数据在前端渲染,动态的数据不利于爬虫抓取
- 不方便使用浏览器自带的导航