簡體   English   中英

希望Javascript在無限循環時運行

[英]Want Javascript run while loop infinitely

我希望Javascript代碼可以無限地操作html中的某些對象,

但是,我只能使用setTimeout("function()", 0)而不能使用while(1)

例子

whilehttps : //gist.github.com/Asoul/e5dd3bd38eef4ca239cb

setTimeouthttps : //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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM