是否有某種window.onThis();
函數,我可以設置,以便我的代碼在後臺循環運行?Javascript的後臺運行代碼
window.onload = function() {while(true) {console.log("Blah")}}
這會使頁面無響應。推薦的方法是什麼?
我覺得有些事情已經過去了。也許我看錯了方式。
是否有某種window.onThis();
函數,我可以設置,以便我的代碼在後臺循環運行?Javascript的後臺運行代碼
window.onload = function() {while(true) {console.log("Blah")}}
這會使頁面無響應。推薦的方法是什麼?
我覺得有些事情已經過去了。也許我看錯了方式。
Javascript一次只能運行一個線程,所以當它以最快的速度運行console.log ("Blah")
時,它無法做任何事情。
更好的方法是使用setInterval
,例如,
var a = setInterval(function() { console.log("blah"); }, 1000);
// Set the function to be called every 1000 milliseconds
//(optional) some time later
clearInterval(a);
// Stop the function from being called every second.
一般來說,繁忙的無限循環(while (true) { ... }
)是不是一個好主意。
見https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval
如何使用Javascript /帆布遊戲更新如此之快?他們做什麼來更新每一幀的顯示,但沒有滯後頁面? –
這使得頁面反應遲鈍,因爲你已經創建了一個無限循環。 while循環條件將始終爲真,因此循環永遠不會停止運行。
我認爲你正在尋找的setInterval(),在這裏看到https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval
http://en.wikipedia.org/wiki/Web_worker – Musa