2011-06-30 53 views
2

我有大約3個JavaScript定時器使用settimeout在頁面上同時工作,但這些定時器調用的函數運行不正常,看起來定時器正在等待彼此之間,有時掛在頁面上。同一頁面上的多個定時器不能正常工作

在處理js計時器以避免此行爲時是否有最佳做法?

例子:

有時使用jQuery計時器是這樣的:

$(document).everyTime(1000, "blinkRed", function (i) { 
     $(price).toggleClass('valuered'); 
}, 10); 

,有時我用正常settimeout JavaScript函數。

+3

你能展示一些(相關的)代碼嗎? –

回答

3

定時器不是彼此等待,而是定時器完成時調用的函數。 因此,當你在第一個定時器功能中加入阻塞碼(如警報)時,它將阻止其他定時器關閉。

+0

是的,javascript是單線程的,另一個定時器只會在前一個返回後纔會觸發。 – Prusse

+0

好的,我通過增加超時時間讓事情變得更好,更順暢,讓我們不要太頻繁。 –