在 JavaScript 中阻止调用
2011-10-18
467
在 javascript 中编写阻塞调用是个好主意吗? 意思是一个执行某项操作 x 秒并返回的函数?
我想通过添加这些内联阻塞函数来添加人为延迟。
这样做的缺点是 CPU 非常忙 执行一些随机操作 x 秒。
另一个缺点是浏览器中的多个 选项卡可能会挂起 。
有没有更好的方法来做到这一点???
2个回答
不,这样做不是一个好主意(您已经提到了一些原因)。请改用
setTimeout
。
Greg Hewgill
2011-10-18
如果我从您对其他回答者的评论中正确理解了您的问题,您希望模拟一个“线程”,该线程执行某些操作,然后阻塞一段时间,然后恢复。在此“线程”被“阻塞”期间,(1) 其他选项卡处于活动状态,并且 (2) CPU 未处于忙等待状态。
如果是这种情况,您可以使用
setTimeout
(正如 Greg Hewgill 指出的那样)。诀窍是按如下方式思考。将您的“线程”分成两部分:
DO_FIRST_PART
setTimeout(function () {DO_SECOND_PART}, 5000);
现在您已经模拟了一个中间有 5 秒延迟的线程。
当然,此选项卡或进程上的其他事件仍将被接受。但正如 Greg 指出的那样,它们应该被接受。
Ray Toal
2011-10-18