希望Javascript无限循环运行

时间:2013-10-06 07:52:10

标签: javascript html css while-loop settimeout

我希望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,而不是画布,并希望游戏可以毫无滞后地玩。

1 个答案:

答案 0 :(得分:3)

您无法使用while的主要原因是因为javascript是 单线程 。如果您使用while(1),该函数将永远不会退出,所有其他交互都将被冻结。

  

SetTimeout有时可以工作,但是如果我的中有很多setTimeout   代码或一些未知的原因,它会滞后。

这也是因为javascript的单线程性质,如果有一个功能需要很长时间才能完成,它将主宰主线程。

  

希望游戏可以毫无滞后地玩。

您需要避免在 所有功能 中长时间运行。如果您无法避免这种情况,请尝试使用setTimeout将长时间运行的操作拆分为多个部分。 例如:如果您有一个for循环处理100条记录,您可以将其拆分为10个单独的迭代。