版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31490071/article/details/84790882
虽然接触web开发有一段时间了,但从头开始构建一个完整的web项目的机会非常少,对于一些概念还很模糊,今天首先来梳理一下在应用开发中,单页面应用和多页面应用的区别。
其实从字面意思上理解,就很好理解了。
单页面,顾名思义只有一个界面。
界面是通过URL来定位的,所以单页面应用从头到尾它的html地址都是不变的,注意哦,是html地址,而不是URL地址,这两者还是有点区别的。html地址是截止到.html的界面地址,比如:http://about.html#setting这个地址中,html地址是http://about.html,而完整的URL是http://about.html#setting。
而多页面应用,顾名思义就是多个界面间的跳转,会伴随着html地址的改变。
在单页面应用中,通常是由一个外部框架和一个一个组件组成的,界面之间的切换其实就是组件的移除和新组建的添加。
在多页面中,则可以看到导航栏中地址的变化,是从一个完整的页面跳转到另一个完整的页面(注意区分页面和界面)。
思考:带iframe的界面算是单页面还是多页面?
下面是详细的区别(原文地址:https://www.jianshu.com/p/4c9c29967dd6)
对比项 | 多页面应用 | 单页面应用 |
应用构成 | 由多个完整页面构成 | 一个外壳页面和多个组件构成 |
跳转方式 | 页面之间的跳转是从一个页面跳转到另一个页面 | 页面片段之间的跳转是把一个页面片段删除或隐藏,加载另一个页面片段并显示出来。这是片段之间的模拟跳转,并没有开新页面 |
跳转后公共资源是否重新加载 | 是 | 否 |
URL模式 | http://xxx/page1.html 和 http://xxx/page2.html | http://xxx/shell.html#page1 和 http://xxx/shell.html#page2 |
用户体验 | 页面间切换加载慢,不流畅,用户体验差,特别是在移动设备上 | 页面片段间的切换快,用户体验好,包括在移动设备上 |
能否实现转场动画 | 无法实现 | 容易实现(手机app 动效) |
搜索引擎优化SEO | 可以直接做 | 需要单独方案做,有点麻烦 |
特别适用的范围 | 需要对搜索引擎友好的网站 | 对体验要求高的应用,特别是移动应用 |
开发难度 | 低一些,框架选择容易 | 高一些,需要专门的框架来降低这种模式的开发难度 |