如何在不停止HTML呈现的情况下放置停止代码的延迟
How to put a delay that stops the code without stop the HTML render?
我需要在for循环中停止我的代码,一个暂停时间的sleep()
函数不起作用,因为我的HTML没有在该时间内呈现,而setTimeout
函数将在执行设置代码之前继续循环。
例如,这将显示带有1、2、3的警报,然后显示带有"停止"的3个警报。
function test(){
for (var i = 1;i<4;i++) {
alert(i);
setTimeout(function(){alert("Stop");},1000);
}
}
在让HTML呈现的同时,我怎么能等到继续循环?
使用DOMContentLoaded事件检查HTML是否完全呈现:
<script>
document.addEventListener('DOMContentLoaded', function(event) {
alert('html loaded');
});
</script>
在您的示例中,您可以只使用confirm来显示消息,当用户单击时,您可以使用下一个setTimeout
来显示下一条消息。
但是,我认为这并不是你真正想要的。
有很多方法可以实现不影响html渲染的异步javascript,例如使用Web Worker,或者在setTimeout
内部传递函数,这些方法可以使用闭包来帮助跟踪您所在的位置,但是,在一些处理和一些事件之后调用下一个setTimeout
,因为这些方法将允许渲染继续进行,直到某些事件或时间发生。
相关文章:
- 如何在有延迟的情况下对两个代码进行积分
- 延迟代码执行,直到下载完成
- 在单击下一个按钮之前,在JavaScript代码中添加5秒的延迟
- 如何在不停止HTML呈现的情况下放置停止代码的延迟
- 是否有一个Javascript函数可以使代码在运行时延迟
- 按顺序调用javascript代码的替代方法,其间有延迟
- 在一段真实代码中延迟
- 在下面的 Angular Material 代码中了解此延迟语法及其用途
- jquery延迟代码的执行
- 如何在下面的代码中添加setTimeout来延迟渐变动画
- 在不使用外部库的情况下为JavaScript代码添加简单延迟
- 为什么这个ajax代码会延迟
- 延迟Javascript/Java中函数内的代码执行
- 在异步代码块中处理的多个ajax延迟调用的数组,后面是同步的最终代码块
- 执行代码,但延迟'return'JS中的函数
- Javascript代码执行延迟
- “setTimeout"与“debounce"插件-延迟对事件的代码执行
- Javascript循环与延迟代码修复
- 尝试使用链接延迟,但我尝试的任何代码都不工作
- Jquery延迟像警告框一样停止代码