我知道 setInterval
和 setTimeout
函数,但它不适合我的情况,因为我需要创建一个 img
DOM间隔7秒的元素。
当我使用 setInterval
时,我无法完全在一定限制(每日计数)后停止它。 [clearInterval
仅清除迭代]
当我在循环(每日计数)内使用 setTimeout
时,它从不延迟。所以唯一的可能性是 sleep 功能。任何人都可以帮助解决这种情况吗?
- 实现 sleep 功能 JavaScript 的最佳方法是什么?
What's the best way to implement a sleep function JavaScript?
JavaScript 代码必须是非阻塞的,因为任何阻塞的代码,如等待某事发生的循环,都会使整个浏览器无响应。 Web 浏览器中的 JavaScript 不仅在单个线程中运行,而且实际上与页面呈现和 UI 共享同一个线程。
解决方案是使用计时器:setTimeout()
或 setInterval()
.这些函数是非阻塞的;他们立即返回。他们将回调函数附加到将在未来某个时间触发的超时事件。调用 setTimeout()
函数后,JavaScript 代码立即终止执行,因此用户仍然可以使用浏览器。然后当超时被触发时,之前定义的回调被调用,你的代码被解释。这是处理 JavaScript 中“延迟”的唯一实用方法。
此外,这里有一篇关于 JavaScript 计时器如何工作的有趣文章:
既然您知道为什么阻塞 sleep 功能不起作用,请查看 @Tomalak's link对于一些使用 setTimeout()
或 setInterval()
的解决方案。