单页 Web 应用 (single-page application 简称为 SPA) 是一种特殊的 Web 应用。
它将所有的活动局限于一个web页面中,仅在该web页面初始化时加载相应的HTML、JavaScript和CSS。一旦页面加载完成了,SPA不会因为用户的操作而进行页面的重新加载或跳转,而是利用JavaScript动态的交换HTML的内容,从而实现UI与用户的交互。
由于避免了页面的重新加载,SPA可以提供较为流畅的用户体验,得益于ajax,我们可以实现无跳转刷新,又多亏了浏览器的history机制,我们用hash的变化从而实现推动界面变化。
与多页面应用对比如下:
单页面应用实例:qq空间
当点击顶部导航条的时候,发现整个页面并没有刷新,而是中间主体内容替换了,并且地址栏的url变化了。比如我从“我的主页”切换到“好友”,地址栏只是末尾发生变化,从/main变成/myhome/friends,这是根据前端路由显示不同的内容。