我想要计算访客在某个页面上花费的时间,并将其存储在我的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次中的1次有效。
可能是因为PHP和SQL没有足够的时间完全执行吗?