单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。 浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。
速度:更好的用户体验,让用户在web app感受native app的速度和流畅,
MVC:经典MVC开发模式,前后端各负其责。
ajax:重前端,业务逻辑全部在本地操作,数据都需要通过AJAX同步、提交。
路由:在URL中采用#号来作为当前视图的地址,改变#号后的参数,页面并不会重载。
单页Web应用(single page web application,SPA)是当今网站开发技术的弄潮儿,很多传统网站都在或者已经转型为单页Web应用,新的单页Web应用网站(包括移动平台上的)也如雨后春笋般涌现在人们的面前,如Gmail、Evernote、Trello等。如果你是一名Web开发人员,却还没开发过或者甚至是没有听说过单页应用,那你已经Out很久了。
单页Web应用和前端工程师们息息相关,因为主要的变革发生在浏览器端,用到的技术其实还是HTML+CSS+JavaScript,所有的浏览器都原生支持,当然有的浏览器因为具备一些高级特性,从而使得单页Web应用的用户体验更上一层楼。关于单页应用的优点和缺点,网上讲解的文章有很多,这里就不展开论述了。 单页Web应用,顾名思义,就是只有一张Web页面的应用。浏览器一开始会加载必需的HTML、CSS和JavaScript,之后所有的操作都在这张页面上完成,这一切都由JavaScript来控制。因此,单页Web应用会包含大量的JavaScript代码,复杂度可想而知,模块化开发和设计的重要性不言而喻。
优点:
分离前后端关注点,前端负责界面显示,后端负责数据存储和计算,各司其职,不会把前后端的逻辑混杂在一起;
减轻服务器压力,服务器只用出数据就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍;
同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端;
缺点:
SEO问题,现在可以通过Prerender等技术解决一部分;
前进、后退、地址栏等,需要程序进行管理;
书签,需要程序来提供支持;
优点: 1、具有桌面应用的即时性、网站的可移植性和可访问性. 2、用户体验好、快,内容的改变不需要重新加载整个页面,web应用更具响应性和更令人着迷。 3、基于上面一点,SPA相对对服务器压力小。 4、良好的前后端分离。SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化。 5、对前端人员javascript技能要求更高,促使团队技能提升。
缺点:
1、分功能模块的鉴权不好实现。
2、不利于SEO。
3、初次加载耗时相对增多。
4、导航不可用,如果一定要导航需要自行实现前进、后退。
5、对开发人员技能水平、开发成本高。
优点主要是体验上转场效果更顺滑,对 PWA 的支持更好,页面切换无需重新加载 html 速度能更快,缓存策略更好做;缺点主要就是 SEO 了,再就是页面之间会有耦合容易出现一个页面挂了导致全都不可用。
因为没有项目结构,只能说下通用的问题: 一块是SPA在接入二方或者三方模块的时候,容器隔离需要注意,样式和全局变量可能会受到污染,导致运行时的问题比较多 一块是SEO由于SPA都是Web端路由,只有一个页面能做SEO 一块是路由,由于一些三方包也会去修改页面hash或者参数,可能破坏整个上下文,或者在业务上需要解析url时内容过期
优点
缺点
单页应用的优点与缺点
相比传统的开发方式,单页应用有如下几方面的显著优点:
与此同时,单页应用也存在如下几方面的缺点:
对于缺点1,开发者可借助如下手段解决或优化:
对于缺点2,开发者可以通过配置web服务器,为页面加上缓存控制,从而降低影响,使得页面的第二次及其后的加载速度更快。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。