2015-09-08 177 views
0

一定數量所以,我工作的一個計時器,這是我的代碼,現在一個功能:重複以1秒間隔的時間

function sleep(milliseconds) { 
    var start = new Date().getTime(); 
    for (var i = 0; i < 1e7; i++) { 
    if ((new Date().getTime() - start) > milliseconds) { 
     break; 
    } 
    } 
} 

function timerCreate() { 
    for (i = 0; i < 10; i++) { 
    sleep(1000); 
    minusOneSec(); 
    } 
} 

所有我想要做的是,十次,每一秒鐘都執行一次minusOneSec()函數。 (我從前面在StackOverflow中看到的答案中拿到了sleep()函數的代碼,我不記得是誰提出來的,所以如果你知道的話請告訴我,這樣我就可以信任他們)。現在它已經發現,這個睡眠函數會在頁面運行時停止頁面中的所有Java腳本。這是真的?我也試過是這樣的:

function timerCreate() { 
    for (i = 0; i < 10; i++) { 
    setInterval(minusOneSec, 1000); 
    } 
} 

,但它所做的是連續運行minusOneSec()函數10次,然後等待1秒鐘,然後功能10倍成一排,等等。有沒有辦法做我想要的,但允許其他JavaScript代碼在同一時間運行?如有必要,我可以使用jQuery。

回答

2

您只需要撥打setInterval()一次(而不是循環)並檢查櫃檯內部。 setInterval()將繼續執行傳遞的函數,直到我們清除間隔。

var i = 0, 
    interval = setInterval(function() { 
     minusOneSec(); 
     i++; 
     if(i >= 10) clearInterval(interval); // stop it 
    }, 1000); 
+0

它的工作原理!謝謝 :-) –