一.单页应用
单页应用的说法是在 JavaScript 和 AJAX 技术比较成熟,以后才出现的,指的是通过浏览器访问一个网站时,只需要加载一个入口页面,此后显示的内容和数据居都不会再刷新浏览器页面。有了单页应用之后,传统的网站就被称为多页应用了。
二.单页应用和多页应用的区别
单页应用(single page application,SPA)将所有内容放在一个页面中,从而使整个页面更加流畅。就用户体验而言,单击导航可以定位锚点,快速定位相应的部分,并轻松上下滚动。单页应用提供的信息和一些主要内容已经过筛选和控制,可以简单、方便地阅读和浏览。
多页应用(multi-page application,MPA)是指包含多个独立页面的应用,其中的每个页面都必须重复加载 JS、CSS 等相关资源。多页应用在跳转时,需要刷新整页资源。
三.单页应用和多页应用
单页应用 | 多页应用 | |
页面结构 | 一个页面 + 许多模块的组件 | 很多完整页面 |
体验效果 | 页面切换流畅,体验效果佳 | 页面切换慢,网速不好的时候,体验效果很不好 |
资源文件 | 公共资源只需要加载一次 | 每个页面都要加载一次公共资源 |
路由模式 | 可以使用 hash,也可以使用 history | 使用普通链接进行跳转 |
适用场景 | 对体验效果和流畅度有较高要求的应用不利于 SEO(搜索引擎优化,可借助服务器端渲染技术优化 SEO) | 适用于对 SEO 有较高要求的应用 |
内容更新 | 相关组件的切换,仅局部更新 | 整体 HTML 的切换 |
相关成本 | 前期开发成本较高,后期维护较为容易 | 前期开发成本低,后期维护比较麻烦,可能一个功能就需要改很多地方 |
多页应用用最大的特点:每次跳转到一个新页面时,都会有一段短暂的白屏时间,即使网速再快,也不能完全消除这段白屏时间。
单页应用则不会出现白屏问题,页面之间的跳转、页面内部内容的更新,都会非常流畅,从而极大提升了用户体验。