Я хочу подсчитать, сколько времени посетители проводят на определенной странице, и сохранить это в моей базе данных MySQL.
Я подумал о том, чтобы просто запустить таймер в window.onload следующим образом:
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);
}
и после того, как посетитель покидает страницу (window.onunload), я отправляю время через XMLHttpRequest в файл PHP, который сохранит его в моей БД:
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();
}
Проблема в том, что это не всегда работает. Я бы сказал, что он работает 3 раза из 10, когда я его пробую. Может быть, осталось недостаточно времени для полного выполнения PHP и SQL?