Javascript 开放和更改时的AJAX xmlhttp.open

Javascript 开放和更改时的AJAX xmlhttp.open,javascript,php,ajax,Javascript,Php,Ajax,我已经创建了下面的代码,它应该在加载时通过xmlhttp.open和.send将文档可见状态转储到mysql数据库 代码在打开时不会按预期执行,但在切换选项卡、最小化浏览器等方面会按预期运行 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script> //Identify i

我已经创建了下面的代码,它应该在加载时通过xmlhttp.open和.send将文档可见状态转储到mysql数据库

代码在打开时不会按预期执行,但在切换选项卡、最小化浏览器等方面会按预期运行

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
//Identify if visible or not
function handleVisibilityChange() {
var state = 'Visable'; 

 if (document.hidden) {    
    var state = 'Hidden';
  } else  {    
    var state = 'Visable';
  }
  if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {

            }
        };
        xmlhttp.open("GET","./track2.php?state="+state,true);
        xmlhttp.send();
}

document.addEventListener("visibilitychange", handleVisibilityChange, false);
</script>
</head>
<body>

</body>
</html>

//识别是否可见
函数handlevibilitychange(){
var状态=‘可视’;
如果(document.hidden){
变量状态='隐藏';
}否则{
var状态=‘可视’;
}
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
}
};
xmlhttp.open(“GET”,”/track2.php?state=“+state,true);
xmlhttp.send();
}
文件。添加的监听器(“可视性更改”,手动可更改,错误);

此文件将作为包含在许多php页面中的文件加载,类似于站点的统计跟踪器。

所需的行为是什么?将页面的可见状态转储到mysql数据库。