2011-07-08 15 views

答えて

2

なぜこのようなjQueryのajaxコールバック関数を使用しないのですか?

function myFunc(condition) { 

    $.ajax({ 
     type:'GET', 
     url:ajaxUrl, 
     data:dataObject, 
     success:function(response) { 
      if (!condition) { 
       myFunc(newCondition); 
      } 
     } 
    }); 
} 
myFunc(); 

これは、条件が真になるまで繰り返し同じ機能を呼び出すことになります。

jQueryのAJAXのリファレンスページ:あなたが行うことができhttp://api.jquery.com/jQuery.ajax/

+0

また、コールバックで 'condition'がtrueの場合は、呼び出しを停止します。 –

+0

さて、ajaxリクエストを再度実行する必要があるかどうかを判断するために、レスポンスに基づいてロジックを実行してください。しかし、たくさんのajaxリクエストのループを実行することは、あなたのサーバーにはうまくいかないかもしれないことに注意してください。 –

0

あなたはajax呼び出しを行い、その間隔を設定するためのjavascript関数を書くことができます。 window.setIntervalを使用してください。

1

(function poll() { 
    $.ajax({ 
     ... 
     success:function(response) { 
      if (!condition_is_met) { 
       poll(); 
      } 
     } 
    }); 
})(); //This calls the poll function inmediatly 

あなたは一定時間後に正確に実行したい場合は、あなたができる:

setInterval(function poll() { 
    if(condition_is_met){ 
    $.ajax({ 
     ... 
     success:function(response) { 
      //your code here 
     } 
    }); 
    } 
}, 5000); //Execute every 5 seconds 

は、この情報がお役に立てば幸いです。乾杯

関連する問題