单页web应用是当今网站开发技术的弄潮儿,很多传统网站都在或者已经转型为单页web应用,新的单页web应用网站(包括移动平台上的)也如雨后春笋般涌现在人们的面前,如gmail、evernote、trello等。
什么是单页面应用程序
单页面应用应用(即single-page app,以下简称spa),就是只有一张web页面的应用。单页应用程序 (spa) 是加载单个html 页面并在用户与应用程序交互时动态更新该页面的web应用程序。浏览器一开始会加载必需的html、css和javascript,所有的操作都在这张页面上完成,都由javascript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。单页web应用(single page web application,spa),就是只有一张web页面的应用。单页应用程序 (spa) 是加载单个html 页面并在用户与应用程序交互时动态更新该页面的web应用程序。浏览器一开始会加载必需的html、css和javascript,所有的操作都在这张页面上完成,都由javascript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。
以前,浏览器会收到来自服务器的html。当用户访问另一个url地址时,需要全页刷新,服务器也会发送全新html。这就是所谓的服务器端渲染。
但是,在现代spa中,客户端渲染已经取代了服务器端渲染。浏览器会先从服务器上加载出最初图像,和包括框架、库和应用代码在内的脚本,以及整个应用所需的样式表。当用户访问其他页面时,页面将不会进行整体刷新,而是通过html5 history api对页面地址进行更新。以json形式呈现出来的新页面所需的新数据,将会通过向服务器发出的ajax请求,由浏览器检索进行检索。接着,spa会通过原先在页面中下载好的javascript,来对页面数据进行动态更新。
spa的特点
速度:更好的用户体验,让用户在web app感受native app的速度和流畅,
mvc:经典mvc开发模式,前后端各负其责。
ajax:重前端,业务逻辑全部在本地操作,数据都需要通过ajax同步、提交。
路由:在url中采用#号来作为当前视图的地址,改变#号后的参数,页面并不会重载。
spa的开发流程
用循环的视角审视web应用开发
框定一个一致的spa图形用户界面(gui)和模型
将spa的原则带回服务器端
聚集于对合适的应用进行早期spa开发
spa的优点
1.应用针对用户操作给出的反应更加灵敏,不会由于页面整体刷新而出现闪退;
2.向服务器发送的