2017-10-05 89 views
0

這樣的功能是否會降低性能,或者被認爲是不好的做法?setInterval一直在運行是不是很糟糕?

setInterval(function(){ 
    if(something){ 
     do something 
    } 
}, 100); 

對我來說,在背景中不斷有東西運行會很糟糕。

+0

如果必須經常運行,還有什麼其他方式? –

+0

我不知道。我是一個初學者:o)但我會學到更多 – NewCodeMan

回答

4

它正在運行的指令集每隔多少毫秒,因此它能夠「慢下來」,這取決於如何密集型的說明,以及如何將用戶從其他進程或網頁上運行的許多其它指令。

如果沒有必要,這是不好的做法。如果你的應用程序是一個每隔幾毫秒完成一件事情的應用程序,那麼這是完成它的一種方法。如果您因爲無法找到正確的工作方式而辭職,那麼您應該花時間去查找並實施正確的工作方式,而不是騷擾用戶的CPU週期。

+0

謝謝,這很有道理。是的,我正在做,因爲我找不到更好的方法!不幸! – NewCodeMan

+1

同意。它取決於setInterval內部的函數在做什麼,以及代碼庫的其餘部分對時間敏感。這實質上就是AngularJS中digest循環背後的想法,不斷檢查$ scope中的變化並重新計算/重繪DOM。所以,它可能是有用的,但它不能很好地擴展。 – mhodges

+2

@NewCodeMan聽起來像[XY問題](http://xyproblem.info/)。嘗試詢問你無法弄清楚的問題,而不是詢問你提出的解決方案。 – mhodges

相關問題