javascript - 想要 Javascript 无限循环运行

标签 javascript html css while-loop settimeout

我希望 Javascript 代码可以无限地操作 html 中的某些对象,

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

例子:

同时:https://gist.github.com/Asoul/e5dd3bd38eef4ca239cb

设置超时:https://gist.github.com/Asoul/bda34fa2f70e4077ec12

我不知道为什么 while(1) 不能在我的 chrome 上运行

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

示例:http://www.csie.ntu.edu.tw/~b00902036/run_neo/run_neo.html

(用上、左、右来玩。我努力避免卡顿,但有时还是会发生。)

我想使用纯 CSS,而不是 Canvas ,并且希望游戏可以无延迟地运行。

最佳答案

不能使用 while 的主要原因是 javascript 单线程。如果您使用 while(1),该函数将永远不会退出并且所有其他交互都将被卡住。

SetTimeout can work sometimes, but if there are many setTimeout in my code or some unknown reasons, it will lag.

这也是因为javascript的单线程特性,如果有一个函数需要很长时间才能完成,它就会霸占主线程。

want the game can play without lags.

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

关于javascript - 想要 Javascript 无限循环运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19206635/

相关文章:

javascript - 在AngularJS中同时显示内容

javascript - jquery ajax 和抢占式基本身份验证

html - 我可以在导航背景图像上制作一个不可见的 Floating Div 以使标题可点击,wordpress 工具箱主题吗?

css - 访问SASS多维列表键

CSS:拆分框边框颜色

jQuery .each 对于第一项只能正确工作一次

javascript - Angular 2 HostListener 按键检测转义键?

javascript - AngularJS 赋值后变量未定义

javascript - 更改连续旋转中的 CSS 动画持续时间

html - 是否有可能有渐变+背景图像的背景