我想只使用 dispatchEvent 调用在 JavaScript/DOM 中创建一个事件循环机制。
例如:
document.addEventListener("LoopingEvent", loop, true);
var loop = function() {
doSomeWork();
updateUI();
document.dispatchEvent(loopEvent);
};
var loopEvent = document.createEvent('Events');
loopEvent.initEvent("LoopingEvent", true, true);
document.dispatchEvent(loopEvent);
运行时,会引发调用堆栈 OutOfRange 错误。如果我将循环处理程序的调度调用更改为使用 window.setTimeout 延迟,它会循环而不会出错。
只是想知道是否有一种方法可以无限地使用 dispatchEvent 循环而不求助于 setInterval 或 setTimeout?dispatchEvent 循环模式的优点是调用发生在工作完成时而不是在设定的时间间隔内。
在此先感谢您的任何见解...