ajax.updater 方法有3個參數: ajax.updater
(container,
url, options)
分別表示 1.控件id;2.請求的url;3.具體如下(可選):
屬性 |
類型 |
Default |
描述 |
method |
Array |
'post' |
HTTP 請求方式。get or post |
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'] |
onXXXXXXXX |
Function(XMLHttpRequest) |
undefined |
在AJAX請求中,當相應的事件/狀態形成的時候調用的自定義方法。 例如 var myOpts =
{onComplete: showResponse, onLoaded: registerLoaded};.
這個方法將被傳入一個參數, 這個參數是攜帶AJAX操作的 XMLHttpRequest對象。 |
onSuccess |
Function(XMLHttpRequest) |
undefined |
當AJAX請求成功完成的時候調用的自定義方法。 這個方法將被傳入一個參數, 這個參數是攜帶AJAX操作的 XMLHttpRequest對象。 |
onFailure |
Function(XMLHttpRequest) |
undefined |
當AJAX請求完成但出現錯誤的時候調用的自定義方法。 這個方法將被傳入一個參數, 這個參數是攜帶AJAX操作的 XMLHttpRequest對象。 |
insertion |
Function(Object, String) |
null |
為了把返回的文本注入到一個元素中而執行的方法。 這個方法將被傳入兩個參數,要被更新的對象并且只應用于 Ajax.Updater
的響應文本 。 |
evalScripts |
Boolean |
undefined, false |
決定當響應到達的時候是否執行其中的腳本塊,只在 Ajax.Updater 對象中應用。 |
decay |
Number |
undefined, 1 |
決定當最后一次響應和前一次響應相同時在 Ajax.PeriodicalUpdater 對象中的減漫訪問的次數,
例如,如果設為2,后來的刷新和之前的結果一樣, 這個對象將等待2個設定的時間間隔進行下一次刷新, 如果又一次一樣, 那么將等待4次,等等。
不設定這個只,或者設置為1,將避免訪問頻率變慢。 |
function getContents()
{
var request_url = "test1.html"; // 需要獲取內容的url
var request_pars = '';//請求參數
var myAjax = new Ajax.Updater('result', request_url,{ // 將request_url返回內容綁定到id為result的容器中
method : 'get', //HTTP請求的方法,get or post
parameters : request_pars, //請求參數
onFailure : reportError, //失敗的時候調用 reportError 函數
onLoading : loading, //正在獲得內容的時候
onComplete : done //內容獲取完畢的時候
});
}
function loading()
{
$('loading').style.display = 'block';
}
function done()
{
$('loading').style.display = 'none';
}
function reportError(request)
{
alert('Sorry. There was an error.');
}
Ajax.Updater
為我們提供加載文檔時候的三種狀態,
onComplete,onLoading,onFailure.我們可以自定義一個函數分別相應這三種不同的狀態。
下面的例子用到了success (一切OK的時候才被用到) ,和它同等地位的屬性還有一個
failure (有地方出問題的時候被用到) 這里沒用到。出錯時在
onFailure 處調用
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>