原型 - AJAX Request() 方法
此 AJAX 方法啟動並處理 AJAX 請求。此物件是一個通用 AJAX 請求器:它處理請求的生命週期,處理樣板程式碼,並允許您插入回撥函式以滿足您的自定義需求。
在可選的 options 雜湊中,您可以根據您的自定義需求使用任何回撥函式,例如 onComplete 和/或 onSuccess。
語法
new Ajax.Request(url[, options]);
一旦物件建立,它就會啟動請求,然後在整個生命週期中繼續處理它。定義的生命週期如下所示:
- 已建立
- 已初始化
- 請求已傳送
- 正在接收響應(可能會發生多次,因為資料包正在傳入)
- 響應已接收,請求已完成
有一組回撥函式,在Ajax 選項中定義,它們按以下順序觸發:
- onCreate(這實際上是為AJAX 全域性響應器保留的回撥)
- onUninitialized(對映到已建立)
- onLoading(對映到已初始化)
- onLoaded(對映到請求已傳送)
- onInteractive(對映到正在接收響應)
- onXYZ(數字響應狀態程式碼),onSuccess 或 onFailure(見下文)
- onComplete
可移植性
根據瀏覽器如何實現XMLHttpRequest,一個或多個回撥可能永遠不會被呼叫。特別是,onLoaded 和 onInteractive 到目前為止還不是 100% 安全的。但是,全域性的onCreate、onUninitialized 和最後兩個步驟是完全有保證的。
返回值
new Ajax.Request
停用和啟用 PeriodicalUpdater
您可以透過簡單地呼叫其 stop 方法來停止正在執行的 PeriodicalUpdater。如果您希望稍後重新啟用它,只需呼叫其 start 方法即可。兩者都不接受引數。
示例
<html>
<head>
<title>Prototype examples</title>
<script type = "text/javascript" src = "/javascript/prototype.js"></script>
<script>
function SubmitRequest() {
new Ajax.Request('/cgi-bin/ajax.cgi', {
method: 'get',
onSuccess: successFunc,
onFailure: failureFunc
});
}
function successFunc(response) {
if (200 == response.status) {
alert("Call is success");
}
var container = $('notice');
var content = response.responseText;
container.update(content);
}
function failureFunc(response) {
alert("Call is failed" );
}
</script>
</head>
<body>
<p>Click submit button see how current notice changes.</p>
<br />
<div id = "notice">Current Notice</div>
<br />
<br />
<input type = "button" value = "Submit" onclick = "SubmitRequest();"/>
</body>
</html>
以下是ajax.cgi的內容。
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "This content is returned by AJAX cgi <br />"; print "Current Time " . localtime;
輸出
引數和 HTTP 方法
您可以將請求的引數作為 options 中的 parameters 屬性傳遞:
new Ajax.Request('/some_url', {
method: 'get',
parameters: {company: 'example', limit: 12}
});
prototype_ajax_tutorial.htm
廣告