0
setInterval函數中的第二個參數用於延遲以毫秒爲單位的執行時間。如預期的那樣,1000毫秒會每秒觸發一次該功能。但是這裏有一個我不太瞭解的奇怪的東西。在第二個時間間隔中,我將delay參數設置爲1毫秒,並將其放入函數遞增數字和條件中,以檢查每個傳遞的1000數字。我期待它的行爲就像秒間隔計時器一樣。但它並不像我所希望的那樣運行。以毫秒爲單位檢測秒數
對此有任何解釋嗎?
// detect seconds in a second interval timer (works as expected)
setInterval(function() {
console.log('passed second from the secondInterval');
}, 1e3);
// detect seconds in a millisecond interval timer (I don't have any explanation for the behavior).
(function() {
var i = 0;
setInterval(function() {
if (i === 0) {
i++;
return;
}
if (i % 1000 === 0) console.log('passed second from the millisecondInterval');
i++;
}, 1);
})();
檢查出的jsfiddle例子來看看我的意思 http://jsfiddle.net/dwh82zos/
http://stackoverflow.com/questions/9647215/what-is-minimum-millisecond-value-of-settimeout –
延遲以毫秒錶示,但不具有毫秒的準確度。把它看作一個建議。你真的想要網頁每秒運行代碼1000次嗎?真正的最小值可能大約爲10-15ms,取決於瀏覽器,操作系統等等。 – Cameron
@Cameron如果您正在處理動畫幀並且確實需要它非常準確,那麼這將非常糟糕。 – Husamuddin