Prototype中的ajax.js提供了一個非常好用的ajax框架,一般應用中簡單的調用以下代碼就可以了
new Ajax.Request(
url, {method: “get”,
onSuccess: showFilter,
onFailure: function(request){alert(”Server error!”)},
onException: showError}
);
這個框架中提供了如下的對象和方法等:
Ajax對象:
只有一個getTransport方法,返回一個XMLHttpRequest對象,另外有一個activeRequestCount屬性,反映當前正在處理的ajax數量
Ajax.Responders對象:
繼承自Enumerable,管理全局Ajax的請求,具有如下方法
register(responder):注冊一個管理ajax請求的對象
unregister(responder):撤銷一個管理ajax請求的對象
dispatch(callback, request, transport, json):觸發注冊的處理對象的方法
這個對象一般很少使用,系統中已經使用如下的代碼注冊了一個處理對象
Ajax.Responders.register({
onCreate: function() {
Ajax.activeRequestCount++;
},
onComplete: function() {
Ajax.activeRequestCount–;
}
});
Ajax.Base類:
Ajax的基類, 只有一個方法setOptions(options), 默認request參數如下,你可以在新建Ajax.request時指定:
method: ‘post',
asynchronous: true,
contentType: ‘application/x-www-form-urlencoded',
encoding: ‘UTF-8′,
Ajax.Request類:
ajax主要的類,繼承自ajax.base類,客戶端使用 new Ajax.Request(url,options) 調用,options是一個對象(關聯數組), 在options中可以指定method,asynchronous,contentType,encoding,parameters, postBody,username,password等選項,其中parameters可以是字符傳或者關聯數組象,
另外在options中還可以通過requestHeaders指定request heads,其中requestHeaders可以是數組(例如[”Connection”,”Close”,”aheadkey”,”aheadvalue”])或一個關聯數組;
options中最重要的選項就是指定ajax的回調方法,可以定義onComplete, onSuccess, onFailure, onException(執行過程中發生異常調用的方法,主要為onComplete, onSuccess, onFailure等回調方法產生的),甚至可以定義on404,on503這樣的回調方法,它們的參數為(transport, json),其中transport為請求的XMLHttpRequest對象, json是evalJSON的結果
如果返回的是一個javascript文件(根據返回的Content-type頭判斷)將會執行evalResponse方法,另外Ajax.Request對象還有一個evalJSON方法,取得文件的時候就會執行
這個對象的方法列表如下:
request(url) : 發送請求,new的時候就已經調用了,所以一般不需要使用
success(): 判斷request是否成功了
getHeader(name):根據name得到request head
evalJSON(): 執行getHeader(”X-JSON”),并返回結果
新聞熱點
疑難解答