1.单页应用与多页应用的原理:
多页应用的原理:
每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用。
单页应用的原理:
第一次进入页面的时候会请求一个html文件,刷新清除一下。切换到其他组件,此时路径也相应变化,但是并没有新的html文件请求,页面内容也变化了。
JS会感知到url的变化,通过这一点,可以用js动态的将当前页面的内容清除掉,然后将下一个页面的内容挂载到当前页面上,这个时候的路由不是后端来做了,而是前端来做,判断页面到底是显示哪个组件,清除不需要的,显示需要的组件。这种过程就是单页应用,每次跳转的时候不需要再请求html文件了。
2.vue等单页面应用及其优缺点:
1.优点
- 提供更好的用户体验,具有桌面应用得即时性,网站得可移植性和可访问性。
- 单页应用得内容得改变不需要重新加载整个页面,更具有响应性。
- 单页应用没有页面之前得切换,就不会出现白屏现象,也不会出现假死和闪烁。
- 单页应用相对服务器压力小,服务器只需要提供数据,不用管展示得逻辑和页面得合成。
- 良好得前后端分离,后端不再负责模板渲染,输出页面工作,后端api通用化,同一套后端程序代码,不用修改就可以用于web页面,手机,平板等多种客户端。
2.缺点
- 首次加载耗时多。
- 不利于seo,搜索引擎收录。
- 容易造成css命名冲突。
- 前进、后退、地址栏、书签等需要程序进行管理,页面得复杂度高,需要一定得技能水平和开发成本高。
3.单页应用与多页应用的比较:
| mm | 多页应用模式MPA | 单页应用模式SPA |
|---|---|---|
| 应用构成 | 由多个完整页面构成 | 一个外壳页面和多个页面片段构成 |
| 跳转方式 | 页面之间的跳转是从一个页面跳转到另一个页面 | 页面片段之间的跳转是把一个页面片段删除或隐藏,加载另一个页面片段并显示出来。这是片段之间的模拟跳转,并没有开壳页面 |
| 跳转后公共资源是否重新加载 | 是 | 否 |
| URL模式 | http://xxx/page1.html http://xxx/page1.html | http://xxx/shell.html#page1 http://xxx/shell.html#page2 |
| 用户体验 | 页面间切换加载慢,不流畅,用户体验差,特别是在移动设备上 | 页面片段间的切换快,用户体验好,包括在移动设备上 |
| 能否实现转场动画 | 无法实现 | 容易实现(手机app动效) |
| 页面间传递数据 | 依赖URL、cookie或者localstorage,实现麻烦 | 因为在一个页面内,页面间传递数据很容易实现 |
| 搜索引擎优化(SEO) | 可以直接做 | 需要单独方案做,有点麻烦 |
| 特别适用的范围 | 需要对搜索引擎友好的网站 | 对体验要求高的应用,特别是移动应用 |
| 搜索引擎优化(SEO) | 可以直接做 | 需要单独方案做,有点麻烦 |
| 开发难度 | 低一些,框架选择容易 | 高一些,需要专门的框架来降低这种模式的开发难度 |