J'essaie de faire en sorte qu'une div se rafraîchisse avec ajax. Le code lui-même est implémenté et fonctionne déjà. Je veux que la div se rafraîchisse toutes les 30 secondes mais seulement sur un onglet actif. Je ne suis pas sûr que ce soit le cas, mais j'ai compris que setInterval rafraichissait à chaque fois, que l'onglet soit utilisé ou non. J'aimerais combiner un mouseenter (ou un autre type d'interaction utilisateur qui implique que l'utilisateur est actif sur le site) avec setInterval afin que le setInterval ne soit pas déclenché s'il est inactif.
J'ai actuellement ce code qui fonctionne bien lors du chargement initial de la page. Il n'y a pas de rafraîchissement pendant les 30 premières secondes, et il n'y a pas non plus de rafraîchissement jusqu'à ce que la souris entre dans la div. Cependant, après les 30 premières secondes, il y a un rafraîchissement à chaque entrée de la souris.
$(document).ready(function(){
$("#container").hide();
$("#loading").show();
$("div#refresh").load('example.com/load.php', function(){ $("#container").show(); $("#loading").hide(); });
function refresh() {
$("#refresh").mouseenter(function() {
// $("#container").hide();
$("#loading").show();
$("div#refresh").load('example.com/load.php', function(){ $("#container").show(); $("#loading").hide(); });
});
clearInterval(intervalID);
}
var intervalID = setInterval(refresh, 30000); // Will alert every 30 second.
// clearInterval(intervalID); // Will clear the timer.
});