单页面应用(spa) VS 多页面应用

介绍

多页应用(MultiPage Application,MPA)

指有多个独立的页面的应用,每个页面必须重复加载 js,css 等相关资源。多页应用跳转,需要整页资源刷新。

单页应用(SinglePage Application,SPA)

只有 一个页面 的应用,一开始只需加载一次 js,css 等相关资源。所有的内容都包含在主页面,对每一个功能模块组件化。单页应用跳转,就是切换相关组件,仅刷新局部资源。

单页应用优点

  1. 有良好的交互体验
    能提升页面切换体验,不会切换页面,只是局部更新,从而避免了页面的重新加载;

  2. 前后端分离开发
    向服务器发送 Ajax 异步获取数据,实现客户端和服务器端分离工作

  3. 减轻服务器压力
    服务器只 返回数据 就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍

  4. 共用一套后端程序代码
    不用修改后端程序代码就可以同时用于 Web 界面、手机、平板等多种客户端;

缺点

  1. 前进、后退管理
    由于单页Web应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能,所有的页面切换需要自己建立堆栈管理,当然此问题也有解决方案,比如利用URI中的散列+iframe实现;

  2. 初次加载耗时多
    为实现单页Web应用功能及显示效果,需要在加载页面的时候将JavaScript、CSS统一加载,部分页面可以在需要的时候加载。所以必须对JavaScript及CSS代码进行合并压缩处理;

  3. SEO难度较高
    由于所有的内容都在一个页面中动态替换显示,所以在SEO上其有着天然的弱势,所以如果你的站点对SEO很看重,且要用单页应用,那么就做些静态页面给搜索引擎用吧;

感谢:
https://www.cnblogs.com/chen-cheng/p/12169902.html
https://blog.csdn.net/cmzhuang/article/details/94334619


原文出处:/show_1IXO9u9rt2l.html