我在我的javascript中有一个setinterval函数,我希望尽可能快,即每隔1ms检查一次事件的状态.是否有可能从用户的浏览器中询问太多?它似乎工作得很好,但我想知道它是否是一个不好的做法.
解决方法:
它不仅可能,而且很常见.从本质上讲,这是一种竞争条件.如果依赖于在下一个时间间隔之前执行的回调内部的代码,请改为使用递归setTimeout.
此外,除非您的间隔被称为lockUpBrowser,否则回调之间的持续时间可能太短,无法实现性能处理.
(function myRecursiveTask() {
// Do your task here
myTask();
if (!someConditionToAllowABailOut) {
setTimeout(myRecursiveTask, 100); // 100ms loop
}
}());