Prototype学习笔记(二)

Chapter 3. Ajax

参考文档的第三章主要内容是Prototype框架中的Ajax技术,Prototype的Ajax主要靠三个对象实现:Ajax.Request、Ajax.Updater、Ajax.PeriodicalUpdater,看到这几个名字应该就知道它们怎么用了。这三个对象是功能类,除此之外还有两个对象是作为参数用的:Ajax.Options、Ajax.Response,还有一个对象是Ajax.Responders。下面一个个开始介绍:

  1. Ajax.Options:包括了Ajax里面所有的“选项”和“回调函数定义”,但你在使用三个功能类的时候,其参数类型都是在这里定义的,可能说的不够清楚,等后面看了例子就明白了,继续~~
    1. asynchronours:默认为true,指示请求是否异步进行。这没什么好设的,如果为false那就是同步请求了,没什么意义。
    2. contentType:你发送的请求的文档类型,默认为’application/x-www-form-urlencoded’。
    3. encoding:你发送的请求的编码类型,默认为”utf-8”。
    4. method:发送请求的类型,默认为”post”,这个是最常用的参数了。
    5. parameters:发送的请求的参数,如果发送请求类型为’get’,则相当于URL参数。
    6. ……其他还有许多参数,这里不一一说明了,大家可以查阅参考文档。
  2. Ajax.Response:这个对象是下面三个功能对象将会接受到的参数,它有很多属性,常用的有:status,statusText,readyState,responseText,responseXML,responseJSON,transport(这个是发送请求的对象,也就是XHR。
  3. Ajax.Responders:这个对象主要功能是注册事件,例如下面的代码:
  4. Ajax.Request:这个对象实现在后台发送一个请求,相当于一个XmlHttpRequest。例如下面的代码:
  5. Ajax.Updater:这个对象将发送一个请求,并且更新DOM文档,不过有点需要注意的是它的onComplete事件是在文档被更新之后才调用的,而跟其他的不一样,在请求完成的时候就调用。调用代码如下:
  6. Ajax.PeriodicalUpdater:这个对象与Ajax.Updater对象功能差不多,它是周期性的更新,就是没过一段时间就更新内容。需要注意的是它与Ajax.Updater对象名字很像,但是他们之间没有继承关系,比如Updater有个方法叫evalJSON,但是PeriodicalUpdater对象没有。PeriodicalUpdater还允许你随时启用或禁用刷新。调用代码如下:
    • 它有两个比较重要的参数
      • frequency:发送的频率,以秒为单位
      • decay:这个参数比较特殊,它的作用是在响应内容没有变化的时候,frequency=frequency X decay,比如你设定frequency为1秒,decay为5,那么当你某次请求响应的内容与上次没有变化的时候,第二次请求的时间间隔会变成5秒,再没变化就是25秒了,当有变化之后,这个参数会重置为5,可想而知,这个参数还是比较危险的,慎用。

我的环境是:

Visual Studio 2005

源代码:

Prototype测试用的代码



Jun07