1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
// On déclare et initialise la variable
var activite_detectee = false;
var intervalle = 100;
var temps_inactivite = 0;
var inactivite_persistante = true;
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
function MAJStatut(statut)
{
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
document.getElementById('statut').innerHTML = xhr.responseText; // Données textuelles récupérées
}
};
xhr.open("GET", "header.php?statut="+statut, true);
xhr.send(null);
}
// On crée la fonction qui teste toutes les x secondes l'activité du visiteur via activite_detectee
function testerActivite()
{
// On teste la variable activite_detectee
// Si une activité a été détectée [On réinitialise activite_detectee]
if(activite_detectee)
{
activite_detectee = false;
temps_inactivite = 0;
inactivite_persistante = false;
var statut = "actif";
MAJStatut(statut);
}
// Si aucune activité n'a été détectée
else
{
// Si l'inactivite est persistante [on met à jour temps_inactivite]
if(inactivite_persistante)
{
temps_inactivite += intervalle;
}
// Si le temps d'inactivite dépasse les 30 secondes
if(temps_inactivite >= 30000)
{
statut = "inactif";
MAJStatut(statut);
}
// Si l'inactivite est nouvelle [on met à jour inactivite_persistante]
else
{
inactivite_persistante = true;
}
}
// On relance la fonction ce qui crée une boucle
setTimeout('testerActivite();', intervalle);
} |
Partager