SPA应用的优缺点

定义

  单页 Web 应用 (single-page application 简称为 SPA) 是一种特殊的 Web 应用。它将全部的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HTML、JavaScript 和 CSS。一旦页面加载完成了,SPA不会由于用户的操做而进行页面的从新加载或跳转。取而代之的是利用 JavaScript 动态的变换HTML的内容,从而实现UI与用户的交互。因为避免了页面的从新加载,SPA 能够提供较为流畅的用户体验。前端

优势

  1. 良好的交互体验 前端进行的是局部的渲染,避免了没必要要的跳转和重复的渲染。
  2. 先后端职责业分离(前端负责view,后端负责model),架构清晰 单页web应用能够和RESTful规约一块儿使用,经过REST API提供接口数据,并使用Ajax异步获取,这样有助于分离客户端和服务器的工做。
  3. 减轻服务器的压力 服务器只须要提供数据,不须要管前端的展现逻辑和页面合成,提升了 性能 SPA应用中服务器能够先将一份包含静态资源(HTML CSS JS等)的静荷数据(payload)发送给客户端,以后客户端只须要获取渲染页面或视图数据便可,
  4. 共用一套后端程序代码 不用修改后端程序代码就能够同时用于web界面、手机、平板灯多种客户端

缺点

  1. SEO(搜索引擎优化)难度高 因为全部内容都在一个页面中进行动态的替换,也就是利用hash片断实现路由,而利用hash片断不会做为HTTP请求中的一部分发送给服务器,因此在SEO上有着自然的弱势  而SPA使用哈希片断的目的是;片断内容发送变化时,浏览器不会像URL发送变化时那样发送请求,这样就能够只请求页面或渲染所需的数据,而不是每个页面获取并解析整份文档
  2. 首次加载时间过长 为实现单页Web应用功能及显示效果,须要在加载页面使将js、CSS统一加载,部分页面按需加载。
  3. 页面复杂都提升,复杂逻辑程度成倍 因为后端只提供数据而再也不管前端的展现逻辑和页面合成,因此这些展现逻辑和页面合成都须要在前端进行编写(前进、后退等),因此会大大提升页面的复杂性和逻辑的难度
相关文章
相关标签/搜索