我有一個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
被調用的時候需要在同步與第二的實際全球打勾。
(我希望我是有意義的。我的意思是調用需要保持同步,每次在第二遍你的電腦或手機上的時鐘!)
我怎樣才能做到這一點?提前致謝!
你需要做一個初步'setTimeout'當前MS和MS旁邊(即'1000-(新的Date()之間的差異getMilliseconds() )'),然後啓動'setInterval'請注意,setTimeout有一個最小值,所以如果它小於該值到下一秒,請添加1000. –
https://stackoverflow.com/a/9647221/2181514 –
如果PC /手機的時鐘是不同的,就像未來的一個星期?這裏有一些建議如何找到你的服務器時鐘和本地時鐘之間的偏移量https://stackoverflow.com/questions/1638337/the-best-way-to-synchronize-client-side-javascript-clock-with-server -date –