Quiero contar cuánto tiempo pasan los visitantes en una página determinada y almacenarlo en mi base de datos MySQL.El evento onunload de JS no siempre funcionará
pensé en que acaba de empezar un temporizador en window.onload así:
window.onload= startCount;
window.onunload= sendCount;
var b=0;
var y;
function startCount() {
document.getElementById('livecount').innerHTML=b;
b=b+1;
y=setTimeout("startCount()",1000);
}
y después de que el visitante abandona la página (window.onunload), estoy enviando el tiempo a través de un XMLHttpRequest para un PHP archivo, que lo almacenará en mi base de datos:
function sendCount() {
clearTimeout(y);
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","count.php?q="+b,true);
xmlhttp.send();
}
El problema es que no siempre funciona. Diría que funciona como 3 de cada 10 veces. Lo intento. ¿Podría ser que no queda suficiente tiempo para que PHP y SQL se ejecuten por completo?
OK, veo ... ni siquiera funciona cuando salgas de la página escribiendo en una URL diferente: cierta página)? – LightDark