私はsetInterval
という機能を持っています。これは私のウェブサイト上のイベントの残り時間を表示します。しかし、カウントダウンは実際の秒のチックと同期していません。Javascript:実際の秒がチェックされているかどうかを確認しますか?
私のコードでは、サーバーへのajax呼び出しを使用して有効期限を一度取得し、成功するとカウントダウンが開始されます。そこまで偉大な。
var request = new XMLHttpRequest();
request.open('GET', 'https://my-website/service.php', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
date = request.responseText;
timer = setInterval(showRemaining, 1000);//start the countdown
} else {
// We reached our target server, but it returned an error
}
};
しかしsetInterval
が呼び出されたときは、第二の実際のグローバルダニと同期する必要があります。
(私は理にかなって願っています。私は、呼び出しが毎回と同期してお使いのPCのや携帯電話の時計で二回通過する必要が意味する!)
どのように私はそれを達成することができますか?前もって感謝します!
あなたが現在のMSと次のミリ秒(すなわち '1000-(新しいDate()との差との最初の' setTimeout'を行う必要がありgetMilliseconds() ) ')' setInterval'を開始します。setTimeoutには最小値があることに注意してください。その値よりも小さい場合は1000を加算してください。 –
https://stackoverflow.com/a/9647221/2181514 –
もし将来の1週間のように、pc/mobileの時計は異なりますか?ここであなたのサーバークロックとローカルクロックの間のオフセットを見つける方法についてのアドバイスがあります。https://stackoverflow.com/questions/1638337/the-best-way-to-synchronize-client-side-javascript-clock-with-server -date –