Prototype-ajax-responders

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

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

AJAX _Ajax.Responders_を使用すると、プロトタイプベースのAJAXリクエストのすべてのステップに関するグローバルリスナーを登録できます。

2つのレスポンダーがあり、1つはリスナーの登録に使用され、もう1つはリスナーの登録解除に使用できます。

構文

Ajax.Responders.register(responder);

Ajax.Responders.unregister(responder);

戻り値

NA.

レスポンダーの登録解除

レスポンダーの登録解除を計画している場合は、最初にレスポンダーを定義してから、_register_に参照を渡し、最後に_unregister_に参照を渡します。

以下は、onCreateおよびonCompleteイベントを監視することにより、現在アクティブなAJAXリクエストをカウントする例です。

送信ボタンを何度もクリックして、結果を確認します-

<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
            });
         }
         Ajax.Responders.register({
            onCreate: function() {
               var count = Ajax.activeRequestCount++;
               var container = $('requests');
               container.update(count);
            },
            onComplete: function() {
               var count =  Ajax.activeRequestCount--;
               var container = $('requests');
               container.update(count);
            }
         });
         function successFunc(response) {
            var container = $('notice');
            var content = response.responseText;
            container.update(content);
         }
      </script>
   </head>

   <body>
      <p>Click Submit button many times and see the result.</p>
      <br/>

      <div id = "notice">Current Notice</div>
      <br/>
      <div id = "requests">Current Request</div>
      <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 ";
print "Current Time " . localtime;

出力