05:00
Un compte à rebours qui compte les battements prend du retard ; celui qui regarde l'horloge non
Les navigateurs ralentissent délibérément les minuteurs des onglets que vous ne regardez pas. Un compte à rebours construit en soustrayant un montant fixe à chaque battement perd exactement le temps que le navigateur a retenu : il se termine donc en retard, parfois de plusieurs minutes. Celui-ci mémorise l'instant où il doit finir et le compare à l'horloge système à chaque mise à jour, ce qui rend le bridage sans effet.
Comment ça marche
- Convertit heures, minutes et secondes en une durée unique et la décompte.
- Enregistre une heure de fin cible au démarrage, puis dérive l'affichage de l'horloge.
- Met en pause et reprend sur le temps restant, et verrouille les champs pendant l'exécution.
durée = heures × 3 600 000 + minutes × 60 000 + secondes × 1 000 (millisecondes) échéance = maintenant + durée restant = échéance − maintenant, relu à chaque mise à jour terminé quand restant ≤ 0
Exemple chiffré
Un minuteur de cinq minutes, lancé puis laissé dans un onglet d'arrière-plan.
- durée = 5 × 60 000 = 300 000 ms
- l'échéance est fixée à l'instant où vous appuyez sur démarrer
- un minuteur qui compte les battements retranche un pas fixe à chaque mise à jour : les mises à jour manquées sont du temps perdu
- celui-ci recalcule échéance − maintenant : les mises à jour manquées ne coûtent rien
- à votre retour dans l'onglet, l'affichage est déjà juste
Le décompte est exact que vous le regardiez ou non. Tout minuteur qui accumule ses propres soustractions au lieu de consulter l'horloge dérivera précisément dans les conditions où vous l'utiliserez le plus.
Lire le résultat
- Le minuteur vit dans la page. Fermer l'onglet le détruit et aucune alarme ne vous parviendra ensuite — pour ce que vous ne devez vraiment pas manquer, utilisez une alarme de l'appareil, qui survit au navigateur.
- La pause conserve le temps restant et non la durée initiale : la reprise repart donc de l'endroit où vous vous êtes arrêté. La remise à zéro revient à ce que disent les champs, et c'est pourquoi ils sont verrouillés pendant l'exécution.
- Les secondes affichées sont arrondies au supérieur : un minuteur indiquant 1:00 a entre cinquante-neuf et soixante secondes devant lui. Décompté ainsi, l'affichage atteint 0:00 exactement quand le temps est réellement écoulé, et non une seconde trop tôt.
- Les onglets d'arrière-plan peuvent aussi retarder le moment où la fin est constatée. Le temps restant sera juste dès que la page s'exécutera à nouveau, mais un navigateur ayant totalement suspendu l'onglet ne peut pas vous prévenir à la seconde près.
Questions fréquentes
- Le minuteur continue-t-il si je change d'onglet ?
- Oui, et il reste exact. Comme l'heure de fin est fixée au démarrage et que l'affichage découle de l'horloge système, le bridage d'un onglet d'arrière-plan change la fréquence de redessin du nombre, jamais le nombre lui-même.
- Puis-je fermer l'onglet et être quand même averti ?
- Non. Un compte à rebours qui tourne dans une page cesse d'exister avec elle. Si le manquer compte, réglez aussi une alarme sur votre téléphone ou votre système.