Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 “我如何打印?”_&引用;连续1秒钟?_Javascript_String_Settimeout - Fatal编程技术网

Javascript “我如何打印?”_&引用;连续1秒钟?

Javascript “我如何打印?”_&引用;连续1秒钟?,javascript,string,settimeout,Javascript,String,Settimeout,我想打印下划线直到1秒,然后打印一个“”。10秒后,它将停止。但它在我身上过时了。请告诉我出了什么问题,或者我正在努力实现的目标是否不可能实现 代码: 我甚至试过: setInterval(function(){document.write("_");},100); 加载页面后,使用document.write()可在浏览器中打开新文档,覆盖原始文档。因此,不要将document.write()与计时器一起使用。(或者说,如果你能避免的话,在99%的情况下你都能做到。) 这是我想到的第一种不需

我想打印下划线直到1秒,然后打印一个“”。10秒后,它将停止。但它在我身上过时了。请告诉我出了什么问题,或者我正在努力实现的目标是否不可能实现

代码:

我甚至试过:

setInterval(function(){document.write("_");},100);
加载页面后,使用
document.write()
可在浏览器中打开新文档,覆盖原始文档。因此,不要将
document.write()
与计时器一起使用。(或者说,如果你能避免的话,在99%的情况下你都能做到。)

这是我想到的第一种不需要
document.write()
的方法:

函数doStuff(){
var output=document.getElementById(“输出”);
var下划线interval=setInterval(函数(){
output.innerHTML+=“389;”;
},20);//演示延迟20,可以减少到5(或0-参见下面的注释)
var spaceInterval=setInterval(函数(){
output.innerHTML+=“”;
}, 1000);
setTimeout(函数(){
清除间隔(下划线间隔);
clearInterval(spaceInterval);
}, 10000);  
}
document.querySelector(“按钮”)。addEventListener(“单击”,doStuff)
开始

所以您想要一个非特定数量的下划线,不管CPU在一秒钟内可以管理多少,还是。。。?不要使用带有计时器的
document.write()
(或者,如果可以避免的话)。当解析页面后使用
document.write
时,它会打开一个新文档,并清除所有以前的内容。是的,我只想要CPU在一秒钟内可以管理的数量。谢谢。那么,我应该使用什么来代替document.write呢?您可以设置
document.write=function(text){document.body.appendChild(document.createTextNode(text));}
作为
document.write()
问题的快速解决方案,因为
setInterval
是异步的,所以给它一个0毫秒的时间间隔实际上不会造成任何伤害,因为它只会在CPU有时间时执行。@4castle-True,尽管实际上小于5ms的值会被四舍五入到5ms。关于这一点,我已经在我的回答中作了说明。
setInterval(function(){document.write("_");},100);