如何选择使用SPA还是MPA

如何选择使用SPA还是MPA

SPA :Single-Page Application,单一页面应用

MPA:Multiple-Page Application,多页面应用

基于内容优先原则(content first)来思考这个问题,内容是用户决定是否使用应用的原因,因此需要回答两个问题

  1. 你想展示怎样的内容给用户
  2. 用户最希望看到怎样的内容

Single-Page Application

​ 单一页面程序在浏览器中运行,在使用期间不需要用户刷新和重新加载资源。GmailGoogle MapsFacebookGithub等都是这种架构的应用。使用SPA架构的应用程序致力于优秀的用户体验,因为这种架构不需要刷新,不需要等待,用户似乎在使用本地程序一般自然,它仅仅是一个网页,通过Javascript加载了所有的内容

优点

  • 快速,在应用程序生命周期内,所有的资源只需要加载一次,后续仅存在一些与服务器的api请求。
  • 开发更容易,不需要服务端路由来处理,所以很容易开始,甚至可以通过本地打开html的方式使用我们的应用程序。
  • 更容易使用Chrome进行调试
  • 更容易制作手机应用程序,因为可以重用大量的代码
  • 更高效的使用缓存,一次加载全部的资源,甚至可以离线使用

缺点

  • 很难做SEO优化,这曾经是个难点,但是目前可以使用服务端渲染来处理这个问题。
  • 首次加载缓慢,因为首次加载时需要加载全部的资源。
  • 相比较传统网页应用,更容易被跨站脚本攻击
  • Javascript的内存弱点有可能使高配电脑也变得卡顿

Multiple-Page Application

​ 多页面程序是我们所知道多更传统的方式,每次请求都会返回一部分页面用于展示,一般有更多的层次,也更为复杂。因为Ajax技术的存在,我们可以局部刷新,一定程度上降低了网络负载,但是相对SPA结构的应用,在开发上会更复杂一些。

优点

  • 对用户来讲,更明确的功能指引,以及更少深度的层次结构
  • 非常利于SEO

缺点

  • 前后端开发关联紧密。
  • 开发更复杂,开发者需要同时在前后端展开工作,将导致更长的开发周期。

使用SPA还是MPA

如果你有风格迥异的内容以及复杂的分类,那建议使用MPA。

如果的内容拥有一致的体验,那建议使用SPA。

另外一种方式拥有两者的优点和更少的缺点,考虑Hybird site

posted @ 2020-06-05 19:50  我不是陈懋平  阅读(1117)  评论(0编辑  收藏  举报