javascript - 为什么setTimeout中s的第二个参数要设置成500毫秒
高洛峰
高洛峰 2017-06-14 10:51:04
0
4
758

下面是简单时间显示代码:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>当前系统时间</title>
<link rel="stylesheet" href="style.css"  />
<script language="javascript" type="text/javascript">

  window.onload = function(){
    showTime();
  }
  function checkTime(i){  //补位处理
      return i < 10 ? "0" + i : i;



  }
  function showTime(){
    var now=new Date();
    var year=  now.getFullYear();
    var month=  now.getMonth() + 1;
    var day=  now.getDate();
    var h=  now.getHours();
    var m=  now.getMinutes();
    var s=  now.getSeconds();
    h=checkTime(h)
    m=checkTime(m)
    s=checkTime(s)

    var weekday=new Array(7)
    weekday[0]="星期日"
    weekday[1]="星期一"
    weekday[2]="星期二"
    weekday[3]="星期三"
    weekday[4]="星期四"
    weekday[5]="星期五"
    weekday[6]="星期六"

    document.getElementById("show").innerHTML= year+"年"+month+"月"+day+"日 "+  " " +h+":"+m+":"+s;
    t=setTimeout('showTime()',500)
  }

</script>
</head>
<body>
<p class="content1">
  <p id="show">显示时间的位置</p>
</p>
</body>
</html>

如果把setTimeout设置成1000会比实际时间慢一秒,这是为什么呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
滿天的星座

setTimeout(callback,time); 是指,callback回调执行结束并延迟time以后,在执行setTimeout();根据js单线程的特性,可能时间比time更久;这里,可能的原因,就是callback也要一定的执行时间吧,可以用chrome的Timeline查看一下;能力不足,看代码,感觉不存在多大问题;

为情所困

很简单啊,setTimeout这个函数是指500(ms)即0.5秒时间过后在执行showTime函数。如果是1000的话,即1秒过后再执行showTime函数。 所有才会出现你说的这个问题(纯个人理解^~^)。

女神的闺蜜爱上我

不管showTime是延迟1000还是500,获取时间和更新DOM都是同时执行的,所以应该不会有延迟(除非你时间计算出错了)。并且我这里测了下,也没有看到延迟。

另外,为甚不用setInterval

曾经蜡笔没有小新

你先拿到这个时间的数据,然后在后一秒显示,当然会慢一秒啊。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板