Ajax:Asynchronous JavaScript and XML(异步JavaScript和XML),是一种web2.0技术,不是某门技术,官网
http://www.ajax.nl/。
Ajax应用程序的优势在于:
1. 通过异步模式,提升了用户体验
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
AJAX模式:
1 Communication Control Patterns
Predictive Fetch 预取,提前预知用户的操作
举例:小说网站,在你读page 1的时候,后台已经为你预取了page 2,加快加载的速度。
Submission Throttling 提交节流:客户端监听器每隔一段时间或者当用户不再操作时发送客户端的信息给服务器,好让服务器知道客户端在做什么,
举例:google suggest,处理的很精细,丝毫感觉不到延迟,就可以为用户提供搜索建议。还有在处理表单时,比如在select一个
条件时,可能要改变后面的内容显示,这时候我们可以做当select失去焦点时,把select提交到服务器,然后让用户做以下的操作。
Periodic Refresh 周期性更新
举例:espn(
http://sports.espn.go.com/nfl/scoreboard)体育记分板。
gmail(
http://gmail.google.com) 每隔一定周期通知新邮件。
Multi-Stage Download 多阶段下载,把网页分成不同的组件,先加载基础的组件,然后根据用户需求加载另外的用户感兴趣的组件
举例:start.com,主页很简单,加载很快,然后根据用户需求勾选需要的页面,或者添加自己的页面。
还有当你在读文章时,碰到一个链接,你想知道大概的内容时,只需要把鼠标放上去,就有额外的框来显示大概的内容。
2 Fallback Patterns
Cancel Pending Requests 取消待定的请求
举例:当与服务器交换时,返回状态不是200【正常】,而是404【file not found】或者302【内在服务错误】,你继续提交也不会产生什么帮助,除
非管理员去修复它,这里我们需要在客户端设置一个标志,用周期性更新模式【上面提到】定期检查该状态,状态为false,则设置客户端的标
志为false,那么不提交任何的请求,等待管理员修复。
Try Again 再试
举例:在使用以上多阶段下载模式时,假设在加载组件时,遇到错误,那么我们该如何做呢?与其通知用户错误还不如多尝试几次,因为用户对你的提示根本就无所举措,那么我们可以设定一个标志重试N次才决定错误处理,通知用户通知管理员。