以下は単純な時間表示コードです:
setTimeout を 1000 に設定すると、実際の時間より 1 秒遅くなります。これはなぜですか?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
setTimeout(callback,time); 是指,callback回调执行结束并延迟time以后,在执行setTimeout();根据js单线程的特性,可能时间比timeここでは、コールバックにも一定の実行時間が必要であることが考えられますが、コードを見ると、それほど問題はないと思われます。
setTimeout(callback,time)
callback
time
setTimeout()
setTimeout 関数は、500 (ms) または 0.5 秒後に showTime 関数を実行することを指します。 1000 の場合、showTime 関数は 1 秒後に実行されます。 その場合にのみ、あなたが指摘した問題が発生します(あくまで私の個人的な理解です ^~^)。
showTime が 1000 遅れても 500 遅れても、時刻の取得と DOM の更新は同時に実行されるため、(時間の計算が間違っていない限り) 遅れは発生しません。ここでテストしましたが、遅延は見られませんでした。
また、使ってみてはいかがでしょうかsetInterval
setInterval
最初にこの時点でデータを取得し、1秒後に表示します。もちろん、1秒遅くなります。
setTimeout(callback,time)
; 是指,callback
回调执行结束并延迟time
以后,在执行setTimeout()
;根据js单线程的特性,可能时间比time
ここでは、コールバックにも一定の実行時間が必要であることが考えられますが、コードを見ると、それほど問題はないと思われます。setTimeout 関数は、500 (ms) または 0.5 秒後に showTime 関数を実行することを指します。 1000 の場合、showTime 関数は 1 秒後に実行されます。 その場合にのみ、あなたが指摘した問題が発生します(あくまで私の個人的な理解です ^~^)。
showTime が 1000 遅れても 500 遅れても、時刻の取得と DOM の更新は同時に実行されるため、(時間の計算が間違っていない限り) 遅れは発生しません。ここでテストしましたが、遅延は見られませんでした。
また、使ってみてはいかがでしょうか
setInterval
最初にこの時点でデータを取得し、1秒後に表示します。もちろん、1秒遅くなります。