单页面应用和多页面应用区别
一、多页面应用
每一次页面跳转的时候,服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用。
多页面具有什么优点呢?
首屏时间快
首屏时间叫做页面首个屏幕的内容展现的时间,当我们访问页面的时候,服务器返回一个 html,页面就会展示出来,这个过程只经历了一个HTTP请求,所以页面展示的速度非常快。
搜索引擎优化效果好(SEO)
搜索引擎在做网页排名的时候,要根据网页内容才能给网页权重,来进行网页的排名。搜索引擎是可以识别html内容的,而我们每个页面所有的内容都放在Html中,所以这种多页应用,SEO排名效果好。
页面切换慢
因为每次跳转都需要发出一个http请求,如果网络比较慢,在页面之间来回跳转时,就会发现明显的卡顿。
二、单页面应用
第一次进入页面的时候会请求一个html文件,刷新清除一下。切换到其他组件,此时路径也相应变化,但是并没有新的html文件请求,页面内容也变化了。
原理是:JS能检测到url的变化,通过这一点,可以用js动态的将当前页面的内容清除掉,然后将下一个页面的内容挂载到当前页面上,这个页面路由并不是通过服务端来做的,而是通过前端来做,判断页面到底是显示哪个组件,清除不需要的,显示需要的组件。这种过程就是单页应用,每次跳转的时候不需要再请求html文件了。
页面切换快
页面每次切换跳转时,并不需要做html文件的请求,这样就节约了很多http发送时延,我们在切换页面的时候速度很快。
首屏时间慢,SEO差
单页应用的首屏时间慢,首屏时需要请求一次html,同时还要发送一次js请求,两次请求回来了,首屏才会展示出来。相对于多页应用,首屏时间慢。
SEO效果差,因为搜索引擎只认识html里的内容,不认识js的内容,而单页应用的内容都是靠js渲染生成出来的,搜索引擎不识别这部分内容,也就不会给一个好的排名,会导致单页应用做出来的网页在百度和谷歌上的排名差。
三、单页面和多页面应用区别
对比点 | 多页面应用(MPA) | 单页面应用(SPA) |
---|---|---|
应用结构 | 多个完整的页面构成 | 由一个HTML外壳和多个页面片段构成 |
跳转方式 | 从一个页面跳转到另一个页面 | 页面跳转是把一个页面片段删除或者隐藏,加载另外一个页面的片段加以显示。片段之间的显示隐藏模拟跳转,并没有打开新的页面。 |
URL模式 | http://xxx.com/url/page | http://xxx.com/url/#page或http://xxx.com/url/page |
用户体验 | 页面切换时加载慢不流畅,用户体验差,特别移动端上更为明显 | 页面切换快,用户体验好,移动设备上也是 |
能否实现转场动画 | 无法实现 | 实现容易 |
搜索引擎优化(SEO) | 直接可以实现 | 需要单独的优化方案,无法直接在页面上处理 |
适用范围 | 需要搜索引擎友好的网站 | 对用户体验要求高的应用,特别是移动端 |
开发难度 | 较低,无需框架或框架选择多 | 较高,需要专门的前端框架实现 |