单页面开发与多页面开发的区别
单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的html,js,css。所有的页面内容都包含在这所谓的主页面中。但在写的时候,还是会分开写(页面片段),然后在交互的时候有路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多用于PC端。
多页面(MPA),就是只一个应用中有多个页面,页面跳转时是整页刷新
单页面的优点:
- 用户体验号,快,内容的改变不需要重新加载整个页面,基于这一点spa对服务器压力较小
- 前后端分离
- 页面效果会比较炫酷 (比如切换页面内容时的专场动画)
单页面的缺点:
- 不利于seo
- 导航不可用,如果一定要导航需要自行实现前进、后退。(由于是单页面不能用浏览器的前进后退功能,所以需要自己建立堆栈管理)
- 初次加载时耗时多
- 页面复杂度提高很多
|
单页面应用 |
多页面应用 |
组成 |
一个外壳页面和多个页面片段组成 |
多个完整页面构成 |
资源共用 |
共用,只需在外壳部分加载 |
不共用,每个页面都需要加载 |
刷新方式 |
页面局部刷新 |
整页刷新 |
Url模式 |
a.com/#/pageone a.com/#/pagetwo |
a.com/pageone.html a.com/pagetwo.html |
用户体验 |
页面片段间的切换快,用户体验良好 |
页面切换加载缓慢,流畅度不够,用户体验比较差 |
转场动画 |
容易实现 |
无法实现 |
数据传递 |
容易 |
依赖url传参、或者cookie、localStorage等 |
搜索引擎优化(SEO) |
需要单独方案,实现较为困难,不利于SEO检索 可利用服务器端渲染(SSR)优化 |
实现方法简易 |
试用范围 |
高要求的体验度、追求页面流畅的应用 |
适用于追求高度支持搜索引擎的应用 |
开发成本 |
较高,常需借助专业的框架 |
较低,但页面重复代码多 |
维护成本 |
相对容易 |
相对复杂 |