2011-02-08 311 views
4

如何在jQuery中每10秒更新一次Ajax?如何在jQuery中每10秒更新一次Ajax?

$.ajax({ 
    type: "GET", 
    url: options.feedUrl, 
    dataType: "xml", 
    async:options.sync, 
    success: function(xml) { 
     } 

例如,我正在測試上面的jQuery獲取RSS源。那麼如何讓它每隔10秒更新一次RSS,以便用戶可以在Feed中看到新項目?

回答

0

它包裝在一個功能和使用的setInterval()

7

創建間隔

var ResInterval = window.setInterval('myAjaxCall()', 60000); // 60 seconds 

var myAjaxCall = function() { 
$.ajax({ 
    type: "GET", 
    url: options.feedUrl, 
    dataType: "xml", 
    async:options.sync, 
    success: function(xml) { 
     // todo 
    } 
}; 

要停止

window.clearInterval(ResInterval); 
+2

它不一定是var resInterval然後因爲.clearInterval(resInterval); ? – Bluedayz

1

我會避免同步AJAX調用。它會使頁面上的其他內容像動畫凍結一樣。當然,對於異步調用,您需要確保它們不會重疊。在你的setInterval中,你可以把一個鎖:

var doingAjax = false; 

setInterval(function() { 
    if (!doingAjax) { 
    doingAjax = true; 
    jQuery.ajax({ 
     ..., 
     success: function() { 
     doingAjax = false; 
     ... 
     } 
    }); 
    } 
}; 
+0

感謝它的工作,但不是我想要它的方式,但不像Twitter的劑量它 – user841836