[英]Want Javascript run while loop infinitely
我希望Javascript代碼可以無限地操作html中的某些對象,
但是,我只能使用setTimeout("function()", 0)
而不能使用while(1)
例子 :
while
: https : //gist.github.com/Asoul/e5dd3bd38eef4ca239cb
setTimeout
: https : //gist.github.com/Asoul/bda34fa2f70e4077ec12
我不知道為什么while(1)
無法在我的Chrome上運行
SetTimeout
有時可以工作,但是如果我的代碼中有很多setTimeout
或某些未知原因,它將滯后。
示例 : http : //www.csie.ntu.edu.tw/~b00902036/run_neo/run_neo.html
(用盡,左,右演奏。我盡力避免出現延遲,但有時仍然會發生這種情況。)
我想使用純CSS,而不是畫布,並且希望游戲可以無滯后地玩。
你不能使用的主要原因while
是因為JavaScript是單線程的 。 如果使用while(1)
,該函數將永遠不會退出,並且所有其他交互都將被凍結。
SetTimeout有時可以工作,但是如果我的代碼中有很多setTimeout或某些未知原因,它將滯后。
這也是由於javascript的單線程性質,如果有一個函數需要花費很長時間才能完成,它將控制主線程。
希望游戲可以玩而不會滯后。
您需要避免所有功能中長時間運行的操作。 如果您不能避免這種情況,請嘗試使用setTimeout
將長時間運行的操作分成許多部分。 例如:如果您有一個for循環處理100條記錄,則可以將其分為10個獨立的迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.