2011-08-10 15 views
1

私はプロトタイプ1.7を使用しています。私が望むのは、すべてのAjaxリクエストの新しいAjaxリクエストを実行することです。しかし、私はAjaxリクエストを2回目のリクエストで実行したくありません。リクエスト#1の実行要求onCompleteのonCompleteのは、(要求#2)
+ ----要求#のonCompleteの要求を実行しないでください - メイド新しいAjaxリクエストすべてのAjaxリクエストの完了

AJAX要求(要求#1)
+:このように

AJAX行われた要求は、(要求#3)
+ - 要求#3のonCompleteのは、(要求#4)
+ ----私が知っている要求#4

の要求onCompleteのを実行していないファイル名を指定して実行要求私はこれをすることができます:

Ajax.Responders.register({ 
         onCreate: function() { 
         }, 
         onComplete: function() { 
          new Ajax.Request('/update_active.php'); 
         }, 
         onUninitialized: function() { 
         }, 
         }); 

問題は、Ajaxリクエストの無限ループを作り出すことです。

誰でもこれを達成するための提案はありますか?

おかげで、 -David

答えて

1

あなたは、それをチェックし、その後、レスポンダ-呼び出されたAjaxのリクエストに応じてカスタムオプションのプロパティを設定し、することができますトリガーされた要求。他のすべてのリクエストは変更されません。

+0

優秀!どうもありがとうございました! – dcmoody

0

あなたが要求のcalleeを見て、それが自身から来ている場合は中止することができます。

Ajax.Responders.register({ 
    onComplete: function(transport) { 
     if(typeof transport.options.isResponder !== 'undefined') { 
      return; // don't start a new request if the custom option is set 
     }; 

     // set the custom option so this request won't trigger another one 
     new Ajax.Request('url', { 
      isResponder: true 
     }); 
    } 
}); 

あなたが唯一のresponder-ためのオプションを設定する必要があります:あなたは次の要求を送信する前に

関連する問題