单页应用及多页应用

一:是什么

  多页面应用:一个项目是由多个完整的html页面组成

  单页面应用:一个项目中只有一个完整的html页面,其他的都是部分html片段组成。

二:渲染方式

  多页面:页面跳转,后台服务器返回一个新的html文档,页面跳转所有资源都要重新加载

  单页面:页面跳转,局部刷新,不会重新加载全部资源。片段切换快,容易实现

二:问题:

  多页面:页面跳转切换,会出现卡顿空白问题,不容易实现切换动画。切换慢

  单页面:首屏时间慢,SEO差;单页应用的首屏时间慢,首屏时需要请求一次html,同时还要发送一次js请求,两次请求回来了,首屏才会展示出来。相对于多页应用,首屏时间慢。
SEO效果差,因为搜索引擎只认识html里的内容,不认识js的内容,而单页应用的内容都是靠js渲染生成出来的,搜索引擎不识别这部分内容,也就不会给一个好的排名,会导致单页应用做出来的网页在百度和谷歌上的排名差。

三:特性:

  多页面:

    (1)首屏时间快=》访问页面时,服务器只需要返回一个html,页面就会展示出来,这个过程只经历一盒HTTP请求,所以页面展示速度快

    (2)利于SEO=》SEO:根据网页内容给网页权重,搜索引擎可以识别html内容的,每个页面所有内容都放在html中,所以排名效果好

  单页面:

    (1)页面切换快=》页面每次切换跳转时,并不需要做html文件的请求,这样就节约了很多http发送时延,我们在切换页面的时候速度很快。

四:单页面解决seo

  服务器端渲染技术(我是SSR),通过这些技术可以完美解决这些缺点

单页面VS多页面

 

mm

多页应用模式MPA

单页应用模式SPA

应用构成

由多个完整页面构成

一个外壳页面和多个页面片段构成

跳转方式

页面之间的跳转是从一个页面跳转到另一个页面

页面片段之间的跳转是把一个页面片段删除或隐藏,加载另一个页面片段并显示出来。这是片段之间的模拟跳转,并没有开壳页面

跳转后公共资源是否重新加载

URL模式

http://xxx/page1.html 和 http://xxx/page2.html

http://xxx/shell.html#page1 和 http://xxx/shell.html#page2

用户体验

页面间切换加载慢,不流畅,用户体验差,特别是在移动设备上

页面片段间的切换快,用户体验好,包括在移动设备上

能否实现转场动画

无法实现

容易实现(手机app动效)

页面间传递数据

依赖URL、cookie或者localstorage,实现麻烦

因为在一个页面内,页面间传递数据很容易实现(这里是我补充,父子之间传值,或vuex或storage之类)

搜索引擎优化(SEO)

可以直接做

需要单独方案做,有点麻烦

特别适用的范围

需要对搜索引擎友好的网站

对体验要求高的应用,特别是移动应用

搜索引擎优化(SEO)

可以直接做

需要单独方案做,有点麻烦

开发难度

低一些,框架选择容易

高一些,需要专门的框架来降低这种模式的开发难度

    

原文地址:https://www.cnblogs.com/jcxfighting/p/11664305.html