原型 - 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,一個或多個回撥可能永遠不會被呼叫。特別是,onLoadedonInteractive 到目前為止還不是 100% 安全的。但是,全域性的onCreateonUninitialized 和最後兩個步驟是完全有保證的。

返回值

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
廣告

© . All rights reserved.