AJAX介绍及相关资料(转)

Asynchronous Javascript and Xml(Ajax)是当前非常流行的Web开发技术,有很多成功的应用案例,比如 Gmail Google MapBackbase等。作为Rich Internet Application(RIA)的一种实现技术,Ajax不仅可以改善用户体验,还可以简化Web开发,通过将页面高度模块化,数据与表现分离,从而可以使服务器端和客户端都可以很好的解耦,降低开发的复杂度。
事实上,Ajax并不是什么新的技术,只不过是Javascript一些相对比较高级的特性的综合应用。也正因为此,Ajax与其它RIA实现技术(如Flash、Java Applet)相比,不需要在客户端安装特殊的插件,具有更广泛的浏览器兼容性。一般来说,Ajax所涉及的Javascript特性包括:
  • 通过XMLHttpRequest的异步请求调用。 客户端Javascript可以通过异步的方式,向后端服务器发送请求、响应返回结果,对页面内容进行部分的更新,而不再需要每次由用户通过改变链接地址,对整个页面进行更新。这是Ajax能够实现页面的平滑刷新,提供用户体验的基础。
  • 对XML文档的解析与处理。由XMLHttpRequest返回的服务器端信息,可以是纯文本、HTML片段或者是XML文档。对于简单的Ajax应用,纯文本或者HTML片段即可完成任务(如 Gmail);然而对于比较复杂的应用(如 Google Map),服务器返回的信息可能不仅包括页面更新的内容,还包括对页面进行控制的信息,这就需要使用结构化的XML数据,通过Javascript对XML进行解析和处理,获取必要的信息。
  • 基于prototype的面向对象的Javascript从Ajax的字面意思上讲,这一特性并不是一个Ajax应用所必需的。然而,做为一种RIA,其相当大部分的业务逻辑是由客户端Javascript来实现的,如果使用传统的变量+函数的顺序执行的方式,其设计和实现都将是相当复杂的。而如果能够引入面向对象的思想,可以大大降低Ajax开发的复杂性。而Javascript的Prototype属性为这一实现提供了基础。
由于Ajax的热门,网上出现了大量介绍Ajax的网站,文章。根据我的学习过程,比较有代表性的包括:
  • Ajax: A New Approach to Web Applications 这是Jesse James Garrett提出Ajax这个名词的文章。尽管Ajax的应用很早就有了,但是这个术语却是Garret在这篇文章里进行了定义和介绍。文章中用到的2幅图,可以帮助我们理解Ajax与普通Web程序的区别。
  • Ajax: Getting Started 这是发表在Mozilla Developer Center的一篇文章,通过简单的实例,对Ajax的流程进行了描述,让你对Ajax有一个比较基础的认识,可以作为入手的教程。很多人将其翻译成了中文,发布在网上, 这里便是其中之一,如果习惯看中文的话,可以去看看。
  • prototype.js开发笔记 prototype.js 是由Sam Stephenson写的JavaScript包。这段构思奇妙编写良好兼容标准的代码将承担创造胖客户端, 高交互性WEB应用程序的重担,轻松加入Web 2.0特性。我们对于prototype.js的兴趣主要来于两个方面。一是它提供了一系列封装Ajax逻辑的类,可以为我们编写Ajax代码提供便利。另一方面,通过对prototype属性、call、apply等方法的应用,其提供了一套使用Javascript完成面向对象编程的机制,可以很大程度上实现封装、继承、多态等OO特性。 这篇文章的作者通过对prototype.js源代码的分析,介绍了这个包的对象,类,方法和扩展的非官方参考。
  • Ajax Patterns 通过1,2的学习,应该已经对Ajax有一个比较清楚地认识了,并可以编写一些简单的Ajax应用了。然而,如果要真正运用Ajax来进行实际的开发,就会遇到各种各样的问题。这个Wiki站点就可以帮助你更加深入的了解Ajax,你可以在这里找到Ajax开发过程中方方面面的问题及现有的解决方案。不过,目前有一些问题的解决方案还不完善,比如固定链接的问题。
  • Ajaxian 这是一个追踪最新的Ajax应用的Blog。通过这个网站,可以了解最新的Ajax应用实例、方法,新的介绍Ajax技术的文章等等。
  • AjaxMatters 这是一个关于Ajax的综合网站,包括大量的Ajax的文章、书籍、类库和工具的介绍。
  • Google-ajaxslt 这是Google提供的一套开源的Javascript下的XSL-T实现,主要用于在客户端通过XSL-T对服务器返回的XML进行呈现,是从其 Google Map的开发过程中提取出来的。
  • Log4Ajax 对于Javascript程序的开发,最头疼的一件事情就是对其进行调试。对程序纪录日志,是一种常用的调试方法。这篇文章介绍了如何对Ajax程序纪录日志,包括客户端和服务器端两方面的内容。事实上,对于调试程序来讲,可能更重要的是客户端的部分。如果只需要在客户端进行日志纪录的话,可以使用 JSLog这个小工具,它提供了一种比较方便的方式进行客户端日志的记录和显示。
这里提到的,只是我读到或使用过的关于Ajax很少的一部分内容,如果你需要了解更多的Ajax的应用框架和开源工具,可以参看Ajax Patterns的 Frameworks页面,而更多的Ajax网站,可以在 links页面找到。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值