单页面和多页面开发的区别
一、总结
一句话总结:
单页面:单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。所有的页面内容都包含在这个所谓的主页面中。
多页面:每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用
1、单页面渲染和 普通的html 渲染有什么区别?
单页应用的内容都是靠js渲染生成出来的,搜索引擎不识别这部分内容
两者最直观的区别就是:一个 搜索引擎认识,一个搜索引擎不认识
2、为什么多页应用相对于单页面应用的首屏时间快?
多页面只需要请求那个需要的html
单页面:单页应用的首屏时间慢,首屏时需要请求一次html,同时还要发送一次js请求,两次请求回来了,首屏才会展示出来。相对于多页应用,首屏时间慢。
多页面:首屏时间叫做页面首个屏幕的内容展现的时间,当我们访问页面的时候,服务器返回一个html,页面就会展示出来,这个过程只经历了一个HTTP请求,所以页面展示的速度非常快。
3、为什么多页面应用相对于单页面应用的搜索引擎优化效果好(SEO)?
搜索引擎只认识html里的内容,不认识js的内容,而单页应用的内容都是靠js渲染生成出来的
多页面:搜索引擎在做网页排名的时候,要根据网页内容才能给网页权重,来进行网页的排名。搜索引擎是可以识别html内容的,而我们每个页面所有的内容都放在Html中,所以这种多页应用,seo排名效果好、
单页面:因为搜索引擎只认识html里的内容,不认识js的内容,而单页应用的内容都是靠js渲染生成出来的,搜索引擎不识别这部分内容,也就不会给一个好的排名,会导致单页应用做出来的网页在百度和谷歌上的排名差。
4、单页面和多页面的优缺点分别是什么?
多页面优点:首屏时间快,SEO效果好
单页面优点:页面切换快
5、为什么多页面应用相对于单页面应用的页面切换速度慢?
多页面切换页面的时候每次都需要请求http
多页面:页面切换慢( 因为每次跳转都需要发出一个http请求,如果网络比较慢,在页面之间来回跳转时,就会发现明显的卡顿。)
单页面:页面每次切换跳转时,并不需要做html文件的请求,这样就节约了很多http发送时延,我们在切换页面的时候速度很快。
二、单页面和多页面开发的区别
转自或参考:单页面和多页面开发的区别
https://www.cnblogs.com/Leslie-Cheung1584304774/p/10529908.html
三、传统的DOM是如何进行渲染的?以及单页面开发与多页面开发的优缺点。
转自或参考:传统的DOM是如何进行渲染的?以及单页面开发与多页面开发的优缺点。
https://www.cnblogs.com/Fairy-Tail-blogs/p/10867341.html
分为三种:纯后端渲染,纯前端渲染,服务端的js渲染结合前端渲染。
纯后端渲染
纯后端的DOM渲染,DOM树的生成完全是在后端服务器中完成的,相当于后端服务器的程序会把各种的数据拼成一个DOM树,并转换成一个字节流作为HTTP Response的body返回给浏览器。
纯前端渲染
纯前端渲染可以解决纯后端渲染中出现的各种体验问题。纯前端渲染把DOM生成的主题逻辑都放在了前端,这时后端只会返回一个框架的DOM结构,比如只带一个容器元素的的DOM,然后由js代码把页面的主题渲染到这个容器元素中。
服务端的js渲染结合前端渲染
主要是把前两个阶段中,一些交给纯后端DOM渲染逻辑分离的不好,但是交给纯前端DOM渲染又会造成较高延迟的部分单独分离出来形成了一独立DOM渲染阶段,保留的代码中天然的展示层和数据层的分离,又把API请求的累计延迟减少了很多,从SEO角度来说渲染结果对搜索引擎也很友好。当然,这样的做法需要给整体的架构增加一个独立的单元,给开发和部署都带来了更高复杂性。
单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的 html, js, css。所有的页面内容都包含在这个所谓的主页面中。但在写的时候,还是会分开写(页面片段),然后在交互的时候由路由程序动态载入,单页面的页面跳转,仅刷新局部资源。多应用于pc端。
多页面(MPA),就是指一个应用中有多个页面,页面跳转时是整页刷新
单页面的优点:
1,用户体验好,快,内容的改变不需要重新加载整个页面,基于这一点spa对服务器压力较小
2,前后端分离
3,页面效果会比较炫酷(比如切换页面内容时的专场动画)
单页面缺点:
1,不利于seo
2,导航不可用,如果一定要导航需要自行实现前进、后退。(由于是单页面不能用浏览器的前进后退功能,所以需要自己建立堆栈管理)
3,初次加载时耗时多
4,页面复杂度提高很多