| 12
 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