Prototype-ajax-request

提供:Dev Guides
移動先:案内検索

プロトタイプ-AJAX Request()メソッド

このAJAXメソッドは、AJAX要求を開始および処理します。 このオブジェクトは汎用のAJAXリクエスターです。リクエストのライフサイクルを処理し、ボイラープレートを処理し、カスタムニーズに合わせてコールバック関数をプラグインできます。

オプションのオプションハッシュでは、カスタムニーズに応じてonCompleteやonSuccessなどのコールバック関数を使用できます。

構文

new Ajax.Request(url[, options]);

オブジェクトが作成されるとすぐに、リクエストを開始し、ライフサイクル全体を通して処理を続けます。 定義されたライフサイクルは次のとおりです-

  • 作成した
  • 初期化済み
  • リクエストを送信しました
  • 応答を受信して​​います(パケットが到着するたびに何度も発生する可能性があります)
  • 応答を受信し、要求が完了しました

link:/prototype/prototype_ajax_options [Ajax Options、]で定義されている一連のコールバック関数があり、次の順序でトリガーされます-

  • onCreate(これは実際にはlink:/prototype/prototype_ajax_responders [AJAXグローバルレスポンダ)に予約されたコールバックです])
  • onUninitialized(作成済みのマップ)
  • onLoading(初期化のマップ)
  • onLoaded(送信されたリクエストのマップ)
  • onInteractive(受信する応答のマップ)
  • onXYZ(数値応答ステータスコード)、onSuccessまたはonFailure(以下を参照)
  • onComplete

移植性

ブラウザが_XMLHttpRequest_を実装する方法によっては、1つ以上のコールバックが呼び出されることはありません。 特に、これまで_onLoaded_と_onInteractive_は100%安全な賭けではありません。 ただし、グローバル_onCreate onUninitialized_、および2つの最終ステップは非常に保証されています。

戻り値

新しい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メソッド

あなたはオプションのパラメータプロパティとしてリクエストのパラメータを渡すことができます-

new Ajax.Request('/some_url', {
   method: 'get',
   parameters: {company: 'example', limit: 12}
});