2010-01-15 13 views
5

En utilisant Javascript (ou Ajax) Je veux me connecter à une page (une page .php) toutes les 10 secondes. Cela se fera dans l'interface utilisateur (navigateur) d'une page Web. Juste, j'essaie de voir les utilisateurs en ligne. J'ai environ 1-2 visiteurs par jour, sur mon site personnel.essayer d'ouvrir une page toutes les 10 secondes

+5

Jetez un oeil à http://www.google.com/analytics/ – kgiannakakis

Répondre

8

En utilisant la méthode de jQuery » $.post():

setInterval(function(){ 
    $.post("getCount.php", function(result) { 
    // do something with result 
    }, "html"); 
}, 10000); 

Je suppose que vous avez une bonne raison d'interroger votre propre script local. Si vous voulez des informations détaillées sur qui visite votre site, quand, et de quels types d'environnements (machines, navigateurs, etc), je vous suggérerais de mettre en œuvre quelque chose comme Google Analytics.

1

Ce Javascript va lire la page usersonline.php toutes les 10 secondes et placer le contenu sur la page Web actuelle.

<html> 
<head> 
<script> 

var xmlrequest; 

function gotnewdata() 
{ 
    if(xmlrequest.readyState == 4) 
    { 
     document.getElementById("output").innerHTML = xmlrequest.responseText; 
     setTimeout("loadpage();", 10000); 
    } 
} 

function loadpage() 
{ 
    xmlrequest = new XMLHttpRequest(); 
    xmlrequest.open("GET", "usersonline.php", true); 
    xmlrequest.onreadystatechange = gotnewdata; 
    xmlrequest.send(null); 
} 

</script> 
</head> 
<body onload="loadpage();"> 
<h1>My Page</h1> 
<p>USERS ONLINE:</p><p id="output"></p> 
</body></html> 
+1

Il y a trois problèmes avec ceci. 1) La pièce jointe d'événement en ligne est de mauvaise forme et a des problèmes, 2) passer une fonction réelle à 'setTimeout' plutôt qu'une chaîne est préférable puisqu'elle n'implique pas d'évaluation implicite, et 3) cela ne fonctionne pas dans IE depuis 'XMLHttpRequest' n'existe pas dans cet environnement. –

1
<html> 
<body> 
<form target='userCountFrame' action='http://www.google.com'></form> 
<iframe name='userCountFrame'></iframe> 
<script> 
setInterval(function(){ 
    document.getElementsByTagName('form')[0].submit(); 
}, 10 * 60 * 1000); 
</script> 
</body> 
</html> 

modifier l'URL en conséquence, enregistrez le code ci-dessus count.html sur votre bureau et ouvrez-le avec Firefox

Questions connexes