2013-10-03 58 views

回答

1

如果您需要每60秒運行功能,您可以使用setInterval()

setInterval(function() { 
    /* AJAX call here. */ 
}, 60000); 

如果你只需要它來只運行一次,您可以使用setTimeout()

setTimeout(function() { 
    /* AJAX call here. */ 
}, 60000); 

對於兩者,60,000是毫秒延遲(60,000ms = 1分鐘)。

+0

感謝詹姆斯的工作 – bonjour

0

setTimeout()和它的兄弟setInterval()

的setTimeout - 再次呼籲

的setInterval - 把任何指定的時間間隔

例子:

setTimeout(function() { doStuffOnce(); }, 1000); 
setInterval(function() { doStuff(); }, 1000); 
0

如果所有你需要做的正在等待r AJAX完成,那麼你不應該使用固定的超時。如果AJAX呼叫需要一分鐘以上,會發生什麼情況?如果AJAX呼叫在一秒鐘內完成(通常是這樣),爲什麼讓用戶等待一整分鐘(這永遠在瀏覽器中)。相反,只需使用AJAX呼叫本身的回叫,例如

$("/url/to/your/AJAX").done(function(data) { 
    // do what you need to do with the data now 
}) 
+0

我認爲他打算髮射ajax調用一分鐘後:-) – Bergi

1

而不是使用setInterval你可以執行setTimeout 60的秒(60000毫秒),以使只有在以前的調用已成功完成(Ajax調用所以,舉例來說,你可以避開功能使無用的ajax調用,如果你的服務器對於給定的資源返回一個404種或500種狀態)

var xhr = new XMLHttpRequest(); 

function doAjaxCall() { 
    ... 
    xhr.onReadyStateChange = function() { 

     ... 
     if (xhr.readyState === 4) { 
      if (xhr.status === 200 || xhr.status === 304) { 
       setTimeout(doAjaxCall, 60000); 
      } 
     } 
    } 
} 

doAjaxCall(); 
0

Youy可以同時使用 的setTimeout()方法調用函數或指定的毫秒數後計算表達式。

的setTimeout(代碼,毫秒,朗)

代碼必需。將執行的功能 millisec必需。執行代碼之前要等待的毫秒數 lang可選。腳本語言:JScript | VBScript | JavaScript

setInterval()方法以指定的時間間隔(以毫秒爲單位)調用函數或計算表達式。

setInterval()方法將繼續調用該函數,直到調用clearInterval(),或者窗口關閉。

setInterval()返回的ID值用作clearInterval()方法的參數。

提示:1000 ms = 1秒。

的setInterval(代碼,毫秒,朗)

代碼必需。將執行的功能 millisec必需。執行代碼的頻率間隔(以毫秒爲單位) lang可選。 JScript | VBScript | JavaScript

+0

請鏈接您引用的頁面。用'>'縮進引用。 – Bergi

相關問題