Google Chrome (バージョン 40.0.2214.111 m) で次のコードを実行すると、システム クロックが加速し、システム クロックは 10 秒ごとに約 1 ~ 2 秒速くなります。
Intel Atom D525 1.8GHz、2GBのRAMを搭載したWindows 7 64ビットを実行しているマシンでこれをテストしました。すべての Windows Update とドライバーがインストールされています。
setInterval(function(){
var clientTime = new Date().getTime();
console.log(clientTime)
},100);
IE で同じコードを実行すると、システム時刻の変更に問題はありません。
他の誰かが同じ問題を経験していますか?
アップデート
jquery と php を使用して Web サーバー (別のマシンである必要があります) から時間を取得することで、少しテストを追加しました。クライアントの時刻が Web サーバーの時刻に対して相対的に変化することがわかります。
webbserver の serverTime.php に従ってください。
<?php
date_default_timezone_set('Europe/Stockholm');
$date = microtime(true);
print $date;
?>
上記の (最初の) JS は、次のように変更されました。
setInterval(function(){
$.ajax({
url: 'serverTime.php',
type: 'POST',
success: function( serverTime ){
var clientTime = new Date().getTime() / 1000;
var diff = serverTime - clientTime;
console.log(serverTime,clientTime,diff)
}
});
},100);
! Web サーバーを client-computer と同じにすることはできません。違いは表示されません。
サーバーコードの実行時間のために、サーバー時間とクライアント時間の差は常に発生しますが、その差はある程度一定です。
2015-02-17 更新
今、ノードをインストールして同じコードを実行してテストしました:
setInterval(function(){
var clientTime = new Date().getTime();
console.log(clientTime)
},100);
Google Chromeを開くまで変化がありませんが、突然システム時間が変化し始めます。上記と同じ速度ではなく、1 分あたり数秒です。(クロムを開始しただけで、他には何もありません)
これは非常識です、