Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在长过程中强制浏览器刷新视图_Javascript_Html - Fatal编程技术网

Javascript 如何在长过程中强制浏览器刷新视图

Javascript 如何在长过程中强制浏览器刷新视图,javascript,html,Javascript,Html,是否有一种方法可以强制浏览器显示每次迭代的真实过程,如以下代码所示: document.getElementById(“dd”).innerHTML=“新HTML” for(设i=0;i=15){//切换到更小的值以看到它停止 清除间隔(循环); } document.getElementById(“dd”).innerHTML=“新HTML”+i; document.getElementById(“dd”).width=40; i++; },100)//每100m/s调用一次setInter

是否有一种方法可以强制浏览器显示每次迭代的真实过程,如以下代码所示:

document.getElementById(“dd”).innerHTML=“新HTML”
for(设i=0;i<334339;i++){
document.getElementById(“dd”).innerHTML=“新HTML”+i;
document.getElementById(“dd”).width=40;
}

xxxxxxx

您可以使用
setInterval
来实现这一点。
setInterval
的第一个参数是要调用的函数(运行每个循环的代码),第二个参数是希望调用该函数的频率(毫秒)

见下例:

document.getElementById(“dd”).innerHTML=“新HTML”
设i=0;
let loop=setInterval(函数(){
如果(i>=15){//切换到更小的值以看到它停止
清除间隔(循环);
}
document.getElementById(“dd”).innerHTML=“新HTML”+i;
document.getElementById(“dd”).width=40;
i++;
},100)//每100m/s调用一次setInterval函数

我相信
setInterval
是您的最佳选择

document.getElementById(“dd”).innerHTML=“新HTML”
设i=0;
让停止=334339;
设时间_millis=200;
设int=setInterval(函数(){
document.getElementById(“dd”).innerHTML=“新HTML”+i;
document.getElementById(“dd”).width=40;
i++;
如果(i==停止)清除间隔(int);
},时间(单位为毫秒)

xxxxxxx

您可以使用setTimeout,但它没有用。由于您总是覆盖innerHTML,因此设置`document.getElementById(“dd”).innerHTML=“new HTML 334338”;也会有同样的效果。你想完成什么?你想建立一个加载条吗?或者别的什么?我要说的是,由于你已经得到了答案,它目前不能像你的问题中的iit那样工作,因为所有的javascript都被执行了,只有在浏览器刷新页面的时候。由于Javascript基本上是单线程的,所以如果希望看到中间结果,必须“放手”执行。实现这一点的一种方法是使用事件和回调的异步编程,就像Javascript工作方式中的
setInterval
有趣的视频一样:是的,我在几周前看到了上面的Youtube链接。这是一些关于事件循环的基本知识的例子,在二十年的流行语和模式之后被遗忘了。但是在引擎盖下,所有的工作都是获取循环和回调。我们从第一个图形操作系统(比如windows1985)就知道这一点,基本上我不明白为什么浏览器不支持JS代码中的强制重写。我想知道进度条是如何工作的。如果我明白了,我必须将我的迭代分离到我需要的每个地方。