Maison > interface Web > js tutoriel > js compte à rebours efficace de synchronisation de l'heure du serveur

js compte à rebours efficace de synchronisation de l'heure du serveur

巴扎黑
Libérer: 2017-09-15 09:27:38
original
1683 Les gens l'ont consulté

Tout d'abord, parlons de la raison pour laquelle nous devons synchroniser l'heure du serveur, car il existe un certain décalage horaire entre l'heure du serveur et l'heure de l'ordinateur local. Certaines applications qui ont des exigences d'actualité très élevées, comme les résultats de loterie, ne peuvent pas tolérer ce genre de décalage horaire

Option 1 : Demander l'heure au serveur pour chaque compte à rebours


//开启定时器
var timer = setInterval(function () {  
  //执行请求,获取当前服务端时间并进行相应操作
}, 1000);
Copier après la connexion

Cette solution n'est pas conseillée aux développeurs ayant un peu d'expérience. Parce que cela exercera une pression inimaginable sur le serveur et provoquera le crash de l’application. Si vous restez sur cette page pendant une minute, la demande sera envoyée 60 fois. Si 100 personnes visitent cette page à ce moment-là, il y aura 6 000 demandes en une minute. Si le nombre de personnes augmente à nouveau, ce sera certainement le cas. provoquer une pression inutile sur le serveur. De plus, le compte à rebours de cette solution comportera également une erreur importante, car il y a un retard dans la demande, qui est également étroitement lié à l'état de votre réseau.

Option 2 : Renvoyer un horodatage de compte à rebours basé sur l'heure du serveur depuis le serveur


//开启定时器
//假设请求获取到一个时间戳时间差 dateDiff
var timer = setInterval(function () {
  //每秒会获取本地时间,这样就算执行的周期不准确 也可以准确的获取时间差
  var countDown = endTime - (+Date.now())/1000 + dateDiff;
  // 倒计时页面渲染
}, 1000);
Copier après la connexion

Avantages :

sur la page Demande une fois dans le cycle de vie
Haute précision, même si la page est ouverte pendant une longue période, elle conservera toujours une grande précision
Inconvénients :

Puisque l'heure actuelle est obtenue toutes les secondes, si le l'heure locale est délibérément modifiée pendant la période du compte à rebours. Cela entraînera une exception de compte à rebours.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal