2011-08-17 65 views
0

我正在應用程序,我有一個頁面的部分內容需要在一個時間間隔更新。我正在考慮使用JavaScript setInterval來完成這項任務,但我之前沒有使用過這個方法,所以如何在加載特定頁面時啓動setinterval並在卸載頁面之前停止setinterval。順便說一下,如果你知道有更好的方法來做這類任務,請善待與我分享。謝謝你的幫助。如何實現客戶端拉動javascript

回答

1

假設你有一個函數

function myFunction() { 
    ... 
} 

要運行它的每一個n毫秒,使用

setInterval(myFunction, n); 

你不會需要停止自己的間隔時頁面「卸載」或遠離;這是自動完成的。但是,如果你想在其他任何時間停止它,然後保存的setInterval返回值,當你使用它,像這樣:

var timer_id = setInterval(myFunction, n); 

,並用它來停止間隔定時器:

clearInterval(timer_id); 
+0

感謝爲你回答,我使用setInterval(myFunction,n);在我的功能我把警報('測試'),但它仍然彈出「測試」,當我導航到另一個頁面。任何想法爲什麼? – bingjie2680

+0

當你說你'導航到另一個頁面'時,你的意思是什麼? –

+0

從一頁到另一頁。你知道我只需要更新一個特定的頁面。 – bingjie2680

-1

要啓動計時器,只需在頁面加載時調用setInterval。您不需要停止定時器,因爲它會在頁面卸載時自動停止。

下面是從W3Schools的網站,該網站還展示瞭如何通過clearInterval手動停止,如果有必要定時複製一個例子:

http://www.w3schools.com/jsref/met_win_setinterval.asp

<html> 
<body> 

<input type="text" id="clock" /> 
<script language=javascript> 
var int=self.setInterval("clock()",1000); 
function clock() 
    { 
    var d=new Date(); 
    var t=d.toLocaleTimeString(); 
    document.getElementById("clock").value=t; 
    } 
</script> 
</form> 
<button onclick="int=window.clearInterval(int)">Stop</button> 

</body> 
</html> 
+0

這是一個非常糟糕的代碼示例,因爲很多原因(沒有文檔類型,在HTML中使用自關閉,將字符串傳遞給'setInterval',使用保留關鍵字,使用'language'屬性以及使用內聯事件處理程序)。請不要參考w3schools.com。有關更多信息,請參閱http://w3fools.com/ –