Lassen Sie uns zunächst darüber sprechen, warum wir die Serverzeit synchronisieren müssen, da zwischen der Serverzeit und der lokalen Computerzeit ein gewisser Zeitunterschied besteht. Einige Anwendungen, die sehr hohe Aktualitätsanforderungen haben, wie z. B. Lotterieergebnisse, können diese Art von Zeitunterschied nicht tolerieren
Option 1: Fordern Sie die Zeit vom Server für jeden Countdown an
//开启定时器 var timer = setInterval(function () { //执行请求,获取当前服务端时间并进行相应操作 }, 1000);
Diese Lösung ist für Entwickler mit wenig Erfahrung nicht zu empfehlen. Denn dadurch wird der Server unvorstellbar belastet und die Anwendung abstürzt. Wenn Sie eine Minute auf dieser Seite bleiben, wird die Anfrage 60 Mal gesendet. Wenn zu diesem Zeitpunkt 100 Personen diese Seite besuchen, werden in einer Minute 6.000 Anfragen gesendet verursachen auf jeden Fall unnötigen Druck auf den Server. Darüber hinaus weist der Countdown dieser Lösung auch einen großen Fehler auf, da es zu einer Verzögerung bei der Anfrage kommt, die auch eng mit Ihrem Netzwerkstatus zusammenhängt.
Option 2: Einen Countdown-Zeitstempel basierend auf der Serverzeit vom Server zurückgeben
//开启定时器 //假设请求获取到一个时间戳时间差 dateDiff var timer = setInterval(function () { //每秒会获取本地时间,这样就算执行的周期不准确 也可以准确的获取时间差 var countDown = endTime - (+Date.now())/1000 + dateDiff; // 倒计时页面渲染 }, 1000);
Vorteile:
auf der Seite „Anfrage“. einmal im Lebenszyklus
Hohe Genauigkeit, auch wenn die Seite über einen längeren Zeitraum geöffnet ist, behält sie dennoch eine hohe Genauigkeit bei
Nachteile:
Da die aktuelle Zeit jede Sekunde abgerufen wird, wenn die Die Ortszeit wird während des Countdown-Zeitraums absichtlich geändert. Dies führt zu einer Countdown-Ausnahme.
Das obige ist der detaillierte Inhalt vonjs effizienter Serverzeitsynchronisierungs-Countdown. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!