小编Lig*_*ark的帖子

JS 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完全执行?

javascript time counter onunload

5
推荐指数
1
解决办法
2306
查看次数

标签 统计

counter ×1

javascript ×1

onunload ×1

time ×1