recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Pourquoi le deuxième paramètre de s dans setTimeout est-il défini sur 500 millisecondes ?

Ce qui suit est un simple code d'affichage de l'heure :

<!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>

Si setTimeout est réglé sur 1000, ce sera une seconde plus lent que l'heure réelle. Pourquoi est-ce ?

高洛峰高洛峰2810 Il y a quelques jours796

répondre à tous(4)je répondrai

  • 滿天的星座

    滿天的星座2017-06-14 10:53:04

    setTimeout(callback,time); 是指,callback回调执行结束并延迟time以后,在执行setTimeout();根据js单线程的特性,可能时间比timePlus long ; ici, la raison possible est que le rappel nécessite également un certain temps d'exécution. Vous pouvez le vérifier avec la Timeline de Chrome ; la capacité est insuffisante, et en regardant le code, il semble qu'il n'y ait pas vraiment de problème ;

    répondre
    0
  • 为情所困

    为情所困2017-06-14 10:53:04

    C'est très simple. La fonction setTimeout fait référence à l'exécution de la fonction showTime après 500 (ms) ou 0,5 seconde. S'il vaut 1000, la fonction showTime sera exécutée après 1 seconde. Ce n'est qu'alors que le problème que vous avez mentionné se produira (purement ma compréhension personnelle ^~^).

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-14 10:53:04

    Peu importe si showTime est retardé de 1000 ou 500, l'obtention de l'heure et la mise à jour du DOM sont exécutées en même temps, il ne devrait donc y avoir aucun retard (sauf si votre calcul de temps est erroné). Et je l'ai testé ici et je n'ai vu aucun retard.

    Aussi, pourquoi ne pas l'utilisersetInterval

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-14 10:53:04

    Vous obtenez d'abord les données à ce moment-là, puis les affichez une seconde plus tard. Bien sûr, ce sera une seconde plus lente.

    répondre
    0
  • Annulerrépondre