为了账号安全,请及时绑定邮箱和手机立即绑定

如下,请问是否有简单的方法实现 在浏览器中 1秒显示1个数字?

如下,请问是否有简单的方法实现 在浏览器中 1秒显示1个数字?

回首忆惘然 2022-05-17 12:14:38
下面是要实现 在H1中1秒显示1个数字,但执行后浏览器中等10秒 显示11,而console是1秒显示1个数字,跟我要的效果不一样<h1 id="demo" onclick="myfunction()">xx</h1><script>function myfunction(){var x =0 ;do{x++;console.log(x);document.getElementById("demo").innerHTML=x;sleep(1000);}while (x<10);} function sleep(n) {             var start = new Date().getTime();            while (true) if (new Date().getTime() - start > n) break;} </script>
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

你这样实现的sleep是没用的,因为JavaScript是单线程运行的,cpu的运行时间都会消耗在循环中,页面根本就没时间进行渲染,所以要等循环完全结束后才会显示出结果。

其实JavaScript本身有计时器啊,怎么不会利用啊:


<h1 id="demo" onclick="myfunction()">xx</h1><script>var x=0;function myfunction(){   document.getElementById("demo").innerHTML=++x;   if(x<10)setTimeout(myfunction,1000);}</script>


查看完整回答
反对 回复 2022-05-23
?
缥缈止盈

TA贡献2041条经验 获得超4个赞


<script>var n = 1;var int=self.setInterval(function clock(){console.log( n++ );},1000)</script>



查看完整回答
反对 回复 2022-05-23
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

js中SetInterval与setTimeout用法了解一下。

查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信