Prototype Framework Ajax Object
1. Ajax对象
Ajax对象属性
| |
属性
|
描述
|
activeRequestCount | 正在处理中的Ajax请求个数 |
Ajax对象方法
| |
方法
|
描述
|
getTransport() | 返回新的XMLHttpRequest对象 |
2. Ajax.Responders对象
该对象维护一个在Ajax相关事件发生时将被调用的函数的列表。
Responders对象属性
| |
属性
|
描述
|
responders | 被关联到Ajax相关事件的函数列表 |
Responders对象方法
| |
方法
|
描述
|
register(responderToAdd) | responderToAdd对象应包含名如Ajax事件的系列方法(如onComplete, onException等) |
unregister(responderToRemove) | 从列表中移除Dispatch |
(callback,request,transport, json ) | 遍历被注册的对象列表,将request,transport和json三个参数传递给callback参数制定的函数对象。如果Ajax响应中包含一个含有JSON内容的X-JSON HTTP头,那么它会被执行并传入json参数。如果事件是onException,那么transport参数会被异常代替,json不会传递 |
3. Ajax.Base对象
该对象是其他在Ajax对象中定义的对象的基类
Base对象方法
| |
方法
|
描述
|
setOptions(options) | 设定Ajax操作需要的选项 |
responseIsSuccess() | 如果Ajax操作成功返回true,否则为false |
responseIsFailure() | 与responseIsSuccess()相反 |
4. Ajax.Request对象
继成自Ajax.Base,封装Ajax操作。
Request对象属性
| |
属性
|
描述
|
Events | 在Ajax操作中所有可能报告的事件/状态的列表。这个列表包括:'Uninitialized'、'Loading'、'Loaded'、'Interactive'和'Complete' |
transport | 接收Ajax操作的XMLHttpRequest对象 |
url | 请求的URL |
Request对象方法
| |
方法
|
描述
|
Ajax.Request(url,opt) | 构造函数,将在给定的opt选项下请求URL |
evalJSON() | 如果Ajax响应中含有X-JSON HTTP头,则调用执行这些内容 |
evalResponse() | 如果Ajax响应含有值为text/javascript的Content-Type头,那么这个方法就被调用执行响应体 |
header(name) | 引用Ajax响应头的内容,在Ajax访问结束后再调用这上方法 |
onStateChange() | 当Ajax请求状态改变的时候被对象自己调用 |
request(url) | 创建对象时由构造方法调用 |
respondToReadyState(RS) | 当Ajax请求状态改变的时候被对象自己调用 |
setRequestHeaders() | 该方法由对象本身调用配置HTTP请求发送的HTTP报头 |
5. Ajax.Updater对象
该对象继承自Ajax.Request,以请求返回HTML更新页面的特定元素,或者执行请求返回的脚本。含有脚本的时候使用evalScripts选项。
Updater对象属性
| |
属性
|
描述
|
containers | 这个对象包含两个属性,Ajax请求成功执行时更新containers.success指定的元素,否则以错误信息更新containers.failure指定的元素 |
Updater对象方法
| |
方法
|
描述
|
Ajax.Updater(container,url,options) | 构造函数,创建在options选项下请求URL的一个实例 |
updateContent() | 内部调用。当响应到达时,对象调用该方法,用HTML更新适当的元素或调用在options选项中insertion指定的方法。该方法将被传入两个参数,被更新的元素和响应文本 |
6. Ajax.PeriodicalUpdater对象
该对象继承自Ajax.Base,该对象重复生成并使用Ajax.Updater对象来刷新页面中的指定元素,或者执行Ajax.Updater对象可以执行的其他任务。
PeriodicalUpdater对象属性
| |
属性
|
描述
|
container | 这个值将直接传入Ajax.Updater对象的构造方法 |
url | 这个值将直接传入Ajax.Updater对象的构造方法 |
frequency | 两次刷新之间的间隔,以秒为单位,默认为2秒。当调用Ajax.Updater对象的时候,如果服务器响应的内容无变化则时间间隔会乘以decay |
decay | 参见frequency属性 |
updater | 最后一次使用的Ajax.Updater对象 |
timer | 通知对象其下一次更新时用到的JavaScript计时器 |
PeriodicalUpdater对象方法
| |
方法
|
描述
|
Ajax.PeriodicalUpdater( container,url,options) | 构造函数,创建在options选项下请求URL的一个实例 |
start() | 这个方法通常不会被外部调用。对象开始周期性执行任务的时候调用的方法 |
stop() | 使对象停止执行周期任务。停止后,如果有onComplete选项,则引发指定函数 |
updateComplete() | 这个方法通常不会被外部调用。被当前的Ajax.Updater使用,当一次请求结束时,它被用做计划下一次请求 |
onTimerEvent() | 这个方法通常不会被外部调用。当到下一次更新时被内部调用 |
options选项内容
| |||
属性
| 类型 | 默认值 |
描述
|
method | String | 'post' | HTTP请求方式 |
parameters | String | '' | 在HTTP请求中传入URL格式的列表 |
asynchronous | Boolean | true | 指定是否做异步Ajax请求 |
postBody | String | undefined | 在HTTP POST的情况下,传入请求体中的内容 |
requestHeaders | Array | undefined | 和请求一起被传入的HTTP头部列表,这个列表必须含有偶数个项目,任何奇数项目是自定义的头部的名称,接下来的偶数项目是这个头部项目的字符串。例子: ['my-header1','this is the value','my-other-header','another value'] |
onLoading | Function | undefined | 在Ajax请求中,当相应的事件/状态形成的时候调用的自定义方法。例:var myOpt = {onComplete:showResponse,onLoaded:registerLoaded}; 这个方法将被传入一个参数,这个参数是承载Ajax操作的XMLHttpRequest对象,另一个是包含被执行X-JSON响应HTTP头 |
onLoaded | |||
onInteractive | |||
onComplete | |||
onSuccess | Function | undefined | 当Ajax请求成功完成的时候调用的自定义方法。这个方法将被传入一个参数,这个参数是承载Ajax操作的XMLHttpRequest对象,另一个是包含被执行 X-JSON响应HTTP头 |
onFailure | Function | undefined | 当Ajax请求完成但出现错误的时候调用的自定义方法。这个方法将被传入一个参数,这个参数是承载Ajax操作的XMLHttpRequest对象,另一个是包含被执行X-JSON响应HTTP头 |
onException | Function | undefined | 当一个在客户端执行的Ajax发生像无效响应或无效参数这样的异常情况时被调用的自定义函数。它收到两个参数,包含异常Ajax操作的Ajax.Request对象和异常对象 |
insertion | Insertion 类 | undefined | 一个能决定怎样插入新内容的类,Insertion.Before、Insertion.Top、Insertion.Bottom或Insertion.After。只能应用于Ajax.Updater对象 |
evalScripts | Boolean | undefined false | 决定当响应到达时是否执行其中的脚本,只在Ajax.Updater对象中应用 |
decay | Number | undefined 1 | 决定当最后一次响应和前一次响应相同时在Ajax.PeriodicalUpdater对象中的减慢访问的次数,例如,如果设为2,后来的刷新和之前的结果一样,这个对象将等待2个设定的时间间隔进行下一次刷新,如果又一次一样,那么将等待4次,等等。不设定这个值,或者设置为1将避免访问频率变慢 |
frequency | Number | undefined 2 | 用秒表示的刷新时间的间隔,只能应用于Ajax.PeriodicalUpdater对象 |