ajax.updater 方法有3個(gè)參數(shù): ajax.updater
(container,
url, options)
分別表示 1.控件id;2.請(qǐng)求的url;3.具體如下(可選):
屬性 |
類型 |
Default |
描述 |
method |
Array |
'post' |
HTTP 請(qǐng)求方式。get or post |
parameters |
String |
'' |
在HTTP請(qǐng)求中傳入的url格式的值列表。 |
asynchronous |
Boolean |
true |
指定是否做異步 AJAX 請(qǐng)求。 |
postBody |
String |
undefined |
在HTTP POST的情況下,傳入請(qǐng)求體中的內(nèi)容。 |
requestHeaders |
Array |
undefined |
和請(qǐng)求一起被傳入的HTTP頭部列表, 這個(gè)列表必須含有偶數(shù)個(gè)項(xiàng)目, 任何奇數(shù)項(xiàng)目是自定義的頭部的名稱,
接下來(lái)的偶數(shù)項(xiàng)目使這個(gè)頭部項(xiàng)目的字符串值。 例子:['my-header1', 'this is the
value', 'my-other-header', 'another value'] |
onXXXXXXXX |
Function(XMLHttpRequest) |
undefined |
在AJAX請(qǐng)求中,當(dāng)相應(yīng)的事件/狀態(tài)形成的時(shí)候調(diào)用的自定義方法。 例如 var myOpts =
{onComplete: showResponse, onLoaded: registerLoaded};.
這個(gè)方法將被傳入一個(gè)參數(shù), 這個(gè)參數(shù)是攜帶AJAX操作的 XMLHttpRequest對(duì)象。 |
onSuccess |
Function(XMLHttpRequest) |
undefined |
當(dāng)AJAX請(qǐng)求成功完成的時(shí)候調(diào)用的自定義方法。 這個(gè)方法將被傳入一個(gè)參數(shù), 這個(gè)參數(shù)是攜帶AJAX操作的 XMLHttpRequest對(duì)象。 |
onFailure |
Function(XMLHttpRequest) |
undefined |
當(dāng)AJAX請(qǐng)求完成但出現(xiàn)錯(cuò)誤的時(shí)候調(diào)用的自定義方法。 這個(gè)方法將被傳入一個(gè)參數(shù), 這個(gè)參數(shù)是攜帶AJAX操作的 XMLHttpRequest對(duì)象。 |
insertion |
Function(Object, String) |
null |
為了把返回的文本注入到一個(gè)元素中而執(zhí)行的方法。 這個(gè)方法將被傳入兩個(gè)參數(shù),要被更新的對(duì)象并且只應(yīng)用于 Ajax.Updater
的響應(yīng)文本 。 |
evalScripts |
Boolean |
undefined, false |
決定當(dāng)響應(yīng)到達(dá)的時(shí)候是否執(zhí)行其中的腳本塊,只在 Ajax.Updater 對(duì)象中應(yīng)用。 |
decay |
Number |
undefined, 1 |
決定當(dāng)最后一次響應(yīng)和前一次響應(yīng)相同時(shí)在 Ajax.PeriodicalUpdater 對(duì)象中的減漫訪問(wèn)的次數(shù),
例如,如果設(shè)為2,后來(lái)的刷新和之前的結(jié)果一樣, 這個(gè)對(duì)象將等待2個(gè)設(shè)定的時(shí)間間隔進(jìn)行下一次刷新, 如果又一次一樣, 那么將等待4次,等等。
不設(shè)定這個(gè)只,或者設(shè)置為1,將避免訪問(wèn)頻率變慢。 |
function getContents()
{
var request_url = "test1.html"; // 需要獲取內(nèi)容的url
var request_pars = '';//請(qǐng)求參數(shù)
var myAjax = new Ajax.Updater('result', request_url,{ // 將request_url返回內(nèi)容綁定到id為result的容器中
method : 'get', //HTTP請(qǐng)求的方法,get or post
parameters : request_pars, //請(qǐng)求參數(shù)
onFailure : reportError, //失敗的時(shí)候調(diào)用 reportError 函數(shù)
onLoading : loading, //正在獲得內(nèi)容的時(shí)候
onComplete : done //內(nèi)容獲取完畢的時(shí)候
});
}
function loading()
{
$('loading').style.display = 'block';
}
function done()
{
$('loading').style.display = 'none';
}
function reportError(request)
{
alert('Sorry. There was an error.');
}
Ajax.Updater
為我們提供加載文檔時(shí)候的三種狀態(tài),
onComplete,onLoading,onFailure.我們可以自定義一個(gè)函數(shù)分別相應(yīng)這三種不同的狀態(tài)。
下面的例子用到了success (一切OK的時(shí)候才被用到) ,和它同等地位的屬性還有一個(gè)
failure (有地方出問(wèn)題的時(shí)候被用到) 這里沒(méi)用到。出錯(cuò)時(shí)在
onFailure 處調(diào)用
reportError
方法。
<script>
function getHTML()
{
var url = 'http://yourserver/app/getSomeHTML';
var pars = 'someParameter=ABC';
var myAjax = new Ajax.Updater(
{success: 'placeholder'},
url,
{method: 'get', parameters: pars, onFailure: reportError});
}
function reportError(request)
{
alert('Sorry. There was an error.');
}
</script>
<input type=button value=GetHtml onclick="getHTML()">
<div id="placeholder"></div>