博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Ajax学习笔记(一)——Ajax概念

Posted on 2007-02-07 11:16  .NET酷  阅读(978)  评论(0编辑  收藏  举报
如果你是web2.0的拥趸你一定不会对Ajax这个名称感到陌生,包括Gmail在内的诸多web2.0网站都使用了Ajax技术来提供全新的用户体验。
  • Ajax是什么?
  • 什么情况下应该使用Ajax?
  • Ajax是如何运作的?
  • 如何编写Ajax应用程序?

带着上面这些问题我开始了我的Ajax学习之旅。

Ajax是Asynchronous JavaScript and XML的缩写,Asynchronous是“异步”的意思。它是如何构成的呢?Ajax的提出者Jesse James Garrett是这样阐述的:

1. 使用XHTML和CSS标准化显示
2. 使用DOM(Document Object Model)动态显示和交互
3. 使用XML和XSLT进行数据交互和处理
4. 使用XMLHttpRequest进行异步数据获取
5. 使用JavaScript整合所有这一切(这部分被称为Ajax Engine)

所以说Ajax并不是一门全新的技术,它所包含的技术可能5年前甚至更早就出现了,它只是才被人们重视,并适时的出现于Web2.0应用中。Jesse James Garrett用下面这张图说明了Ajax应用和传统Web应用运作机制上的不同。

Ajax

从上图可以看出,传统的web应用程序一般是由客户端浏览器向服务器提交数据,服务器返回新的页面,再次在浏览器中显示,这意味着每次数据往返都需要刷新浏览器页面。

Ajax应用程序改变了这种模式。由Javascript编写的Ajax引擎(Ajax Engine),在Ajax应用程序中担负着一个中间层的任务,当用户界面要向服务器提交数据时,由Ajax引擎负责收集数据并通过Http request(XMLHttpRequest)向服务器发送数据,服务器处理完成后返回XML,Ajax引擎将XML处理为便于用户界面显示的XHTML和CSS数据,并更新用户界面相应部分的显示,而非刷新整个页面,从而避免了不必要的数据往返,只有必要的数据在必要的时刻才在浏览器和服务器之间传输。

Ajax

由于Ajax承担了与服务器通信的任务,从而使得用户的网页浏览及其与应用程序之间的交互得以异步进行。这种异步模式使得用户再也不用对着空白屏幕发呆,再也不用等服务器处理完才能继续自己的工作。Ajax技术使Web应用拥有了与桌面应用相似的用户体验,大大提升了Web应用的可用性。在我刚开始使用Gmail的时候就对其良好的可用性背后的技术感到好奇,直到我了解了Ajax才恍然大悟!

先小结一下,Ajax应用程序的优势在于:

1. 通过异步模式,提升了用户体验
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。