Lig*_*ark 5 javascript time counter onunload
我想计算访问者在某个页面上花费多少时间并将其存储在我的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);
}
Run Code Online (Sandbox Code Playgroud)
在访问者离开页面(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();
}
Run Code Online (Sandbox Code Playgroud)
问题是它并不总是有效.我会说它的效果就像我尝试过的10次中的3次.是不是没有足够的时间让PHP和SQL完全执行?
onunload 不是一种可靠的跟踪方式……好吧,几乎任何东西。例如,请参阅http://www.google.com/support/forum/p/Google+Analytics/thread?tid=6496cd5d4b627c0e&hl=en
就解决问题而言,最好的方法是跟踪用户上次访问该页面的时间。例如,客户端每分钟调用一次跟踪器。像 Google Analytics 这样的分析系统实际上只是假设用户在提供最后一个页面后离开。即,如果我阅读该页面然后单击某些内容,它会刷新计数器。但如果没有后续的点击发生,那就意味着我离开了。
| 归档时间: |
|
| 查看次数: |
2306 次 |
| 最近记录: |