SPA 单页Web应用
来源:互联网 发布:我的祖国钢琴谱 淘宝 编辑:程序博客网 时间:2024/05/17 08:15
定义
单页 Web 应用 (single-page application 简称为 SPA) 是一种特殊的 Web 应用。它将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HTML、JavaScript 和 CSS。一旦页面加载完成了,SPA不会因为用户的操作而进行页面的重新加载或跳转。取而代之的是利用 JavaScript 动态的变换HTML的内容,从而实现UI与用户的交互。由于避免了页面的重新加载,SPA 可以提供较为流畅的用户体验。
优缺点
单页Web程序的出现是富客户端发展的必然结果,但是该技术也是有些局限性,所以采用之前需要了解清楚它的优缺点。
优点:
良好的交互体验
用户不需要重新刷新页面,获取数据也是通过Ajax异步获取,页面显示流畅。
良好的前后端工作分离模式
单页Web应用可以和RESTful规约一起使用,通过REST API提供接口数据,并使用Ajax异步获取,这样有助于分离客户端和服务器端工作。更进一步,可以在客户端也可以分解为静态页面和页面交互两个部分。
减轻服务器压力
服务器只用出数据就可以,不用管展示逻辑和页面合成,吞吐能力会提高几倍;
共用一套后端程序代码
不用修改后端程序代码就可以同时用于Web界面、手机、平板等多种客户端;
缺点:
SEO难度较高
由于所有的内容都在一个页面中动态替换显示,所以在SEO上其有着天然的弱势,所以如果你的站点对SEO很看重,且要用单页应用,那么就做些静态页面给搜索引擎用吧。
前进、后退管理
由于单页Web应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能,所有的页面切换需要自己建立堆栈管理,当然此问题也有解决方案,比如利用URI中的散列+iframe实现。
初次加载耗时多
为实现单页Web应用功能及显示效果,需要在加载页面的时候将JavaScript、CSS统一加载,部分页面可以在需要的时候加载。所以必须对JavaScript及CSS代码进行合并压缩处理,如果使用第三方库,建议使用一些大公司的CDN,因此带宽的消耗是必然的。
框架
AngularJS
AngularJS是一个 MV* 框架,最适于开发客户端的单页面应用。它不是个功能库,而是用来开发动态网页的框架。它专注于扩展HTML的功能,提供动态数据绑定(data binding),而且它能跟其它框架(如jQuery)合作融洽。
如果你要开发的是单页应用,AngularJS就是你的上上之选。Gmail、Google Docs、Twitter和Facebook这样的应用,都很能发挥AngularJS的长处。但是像游戏开发之类对DOM进行大量操纵、又或者单纯需要极高运行速度的应用,就不是AngularJS的用武之地了。
Avalon
Avalon 是一个 MV* 框架,国内迷你简单易用的MVVM框架
- SPA 单页Web应用
- SPA 单页Web应用
- 【SPA】单页Web应用(一)
- 【SPA】单页Web应用(二)
- 【SPA】单页Web应用(三)
- spa单页应用
- 单页Web应用(SPA)的简单介绍
- require.js实现单页web应用(SPA)
- 单页web应用(SPA)的简单介绍
- SPA(Single-page application) 单页应用
- SPA单页应用的优缺点
- SPA单页面应用
- 单页面应用SPA
- SPA单页面应用
- SPA单页WEB应用博客开始第一篇--2015-03-28
- 《移动Web前端高效开发实战》笔记4--打造单页应用SPA
- simple-spa 一个简单的单页应用实例
- simple-spa 一个简单的单页应用实例
- android ViewHolder简洁写法 实用
- hdoj 1087Super Jumping! Jumping! Jumping!《《dp》》
- HTMLTestRunner 异常输出中文乱码
- 欢迎使用CSDN-markdown编辑器
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- SPA 单页Web应用
- leetcode 91. Decode Ways
- 2种方式实时滑动的ViewPager
- angular-phonecat引导程序注意事项
- Android开发IDE插件集合----selector
- Android 中Webview 自适应屏幕
- linux内核串口控制器注册以及收发
- leetcode155.MinStack
- iOS开发者程序许可协议