以下は単純な時間表示コードです:
リーリーsetTimeout を 1000 に設定すると、実際の時間より 1 秒遅くなります。これはなぜですか?
滿天的星座2017-06-14 10:53:04
setTimeout(callback,time)
; 是指,callback
回调执行结束并延迟time
以后,在执行setTimeout()
;根据js单线程的特性,可能时间比time
ここでは、コールバックにも一定の実行時間が必要であることが考えられますが、コードを見ると、それほど問題はないと思われます。
为情所困2017-06-14 10:53:04
setTimeout 関数は、500 (ms) または 0.5 秒後に showTime 関数を実行することを指します。 1000 の場合、showTime 関数は 1 秒後に実行されます。 その場合にのみ、あなたが指摘した問題が発生します(あくまで私の個人的な理解です ^~^)。
女神的闺蜜爱上我2017-06-14 10:53:04
showTime が 1000 遅れても 500 遅れても、時刻の取得と DOM の更新は同時に実行されるため、(時間の計算が間違っていない限り) 遅れは発生しません。ここでテストしましたが、遅延は見られませんでした。
また、使ってみてはいかがでしょうかsetInterval