2011-07-08 49 views

回答

2

爲什麼不使用這樣的jQuery的ajax回調函數?

function myFunc(condition) { 

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

這將反覆調用相同的函數,直到條件爲真。

jQuery的阿賈克斯參考頁:http://api.jquery.com/jQuery.ajax/

+0

如果回調中的條件爲真,它也會停止調用它,對吧? –

+0

對,根據響應做一些邏輯,以確定是否需要再次執行ajax請求。但請記住,執行大量的Ajax請求可能不適合您的服務器。 –

0

您可以編寫一個javascript函數來進行ajax調用併爲其設置時間間隔。使用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 

希望這有助於。乾杯

相關問題