2010-01-15 18 views
5

Uso de Javascript (o Ajax) Deseo conectarme a una página (una página .php) cada 10 segundos. Esto se hará en el lado del usuario (navegador) dentro de una página web. Solo, estoy tratando de ver a los usuarios en línea. Tengo alrededor de 1-2 visitas diarias en mi sitio web personal.intente abrir una página cada 10 segundos

+5

un vistazo a http://www.google.com/analytics/ – kgiannakakis

Respuesta

8

Usando jQuery 's $.post() método:

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

Estoy suponiendo que tiene una buena razón para consultar su propio script local. Si desea información detallada sobre quién visita su sitio, cuándo y de qué tipo de entornos (máquinas, navegadores, etc.), le sugiero que busque implementar algo como Google Analytics.

1

Este Javascript leerá la página usersonline.php cada 10 segundos y colocará los contenidos en la página web actual.

<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

Hay tres problemas con esto. 1) El adjunto al evento en línea es incorrecto y tiene problemas, 2) pasar una función real a 'setTimeout' en lugar de una cadena es preferible ya que no implica una evaluación implícita, y 3) esto no funciona en IE ya que 'XMLHttpRequest' no existe en ese entorno. –

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> 

cambiar la dirección URL en consecuencia, guardar el código anterior como count.html en su escritorio, y abrirlo con Firefox

Cuestiones relacionadas