Maxy.fr

Avoiding slowdowns of a JavaScript counter on an inactive tab

If you're trying to create a Javascript counter that increments every second, you may notice that it works correctly when you're on the active tab but experiences slowness when the tab is not active. This can lead to a desynchronization between the counted seconds and real-time.

Here's a simple method to address this issue

You can use Date.now() to get the number of milliseconds elapsed since January 1, 1970. Here's an example code snippet:

var tsDepart = Date.now();
var secondes = 0;

var timer = setInterval(function(){

	secondes = Math.round((Date.now()-tsDepart)/1000);

},1000);

In this code: We first record the value of Date.now() in a variable called "tsDepart." Then, we create a function that will be executed every second using "setInterval()." We calculate the number of seconds elapsed since we recorded the "tsDepart" variable. To do this, we find the difference between the current Date.now() and the starting time ("tsDepart"), divide the result by 1000 to get the result in seconds, and round the value using Math.round(). While this won't eliminate the slowdowns, it ensures that the counter's value remains accurate even if there are delays in execution due to inactive tabs or other factors.

Catégories : Javascript

Par Guillaume le 20/11/2016 à 19:15

Partager l'article :

Articles similaires

Ajouter facilement un double-curseur à vos formulaires HTML

Lors de la conception de formulaires HTML on se retrouve assez vite limité par les éléments proposés de base. C'est par exemple le cas si on utilise les curseurs avec le code <input type="range">, ceux-ci ne permettent l'utilisation que d'un seul curseur par...

Récupérer les paramètres GET d'une URL avec React.JS

Quoi de plus basique que de récupérer les données fournies en GET dans l'URL d'un site internet, enfin en théorie seulement parce qu'avec React.JS c'est un poil plus compliqué. Heureusement voici une solution qui va vous permettre de...

Demander une confirmation en Jquery lors du clique sur un lien

Parce qu'il est parfois utile de demander une confirmation lorsque l'on clique sur un lien avant d'être redirigé - lorsque ce lien permet la suppression de quelque chose par exemple - et qu'il est assez lourd de devoir le faire en PHP, voici un petit code Jquery permettant de le faire...