多页应用
每次页面跳转,后台都会返回一个新的HTML文档,以往穿传统开发的应用大多都是多页应用,路由由后端来写。
优点:首屏时间快(访问页面,服务器只需要返回一个HTML文件,这个过程就经历一个HTTP请求,请求响应回来,页面就被展示出来),SEO效果(搜索引擎能识别HTML的内容,根据内容进行排名),缺点是页面切换慢(每次页面切换都需要发起一个HTTP请求,假设网络较慢就会出现卡顿情况)。
单页应用
SPA( single-page application )仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。一旦页面加载完成,SPA 不会因为用户的操作而进行页面的重新加载或跳转;取而代之的是利用路由机制实现 HTML 内容的变换,UI 与用户的交互,避免页面的重新加载。
优点:用户体验好、快,内容的改变不需要重新加载整个页面,避免了不必要的跳转和重复渲染;基于上面一点,SPA 相对对服务器压力小;前后端职责分离,架构清晰,前端进行交互逻辑,后端负责数据处理;
缺点:初次加载耗时多:为实现单页 Web 应用功能及显示效果,需要在加载页面的时候将 JavaScript、CSS 统一加载,部分页面按需加载;前进后退路由管理:由于单页应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能,所有的页面切换需要自己建立堆栈管理;SEO 难度较大:由于所有的内容都在一个页面中动态替换显示,所以在 SEO 上其有着天然的弱势。