Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在PHP中关闭浏览器时更新表_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 在PHP中关闭浏览器时更新表

Javascript 在PHP中关闭浏览器时更新表,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试过这个代码 <script> function myFunction() { return "You haven't logout your account. Do you want to leave without logout? "; } </script > <body onbeforeunload="return myFunction()"> <a href="http://www.w3schools.com">M

我试过这个代码

<script>
function myFunction() {
    return "You haven't logout your account. Do you want to leave without logout? ";    
}
</script >

<body onbeforeunload="return myFunction()">
  <a href="http://www.w3schools.com">My Php File</a>
</body>

上面有两个选项。现在,如果我选择在页面上留下,我如何执行我的php文件?我的意思是,当我在此页面上选择“离开”时,我想更新我的表。

目前,没有任何方法可以保证在所有主要浏览器中正确发送请求

一种选择是在myFunction中发送ajax请求,然而,这样你就有可能无法发送该请求。在成功发送请求之前,网站将被保留


虽然没有得到广泛支持,但更好的选择是使用。我相信这将完全符合您的需要,但是Safari和Internet Explorer目前不支持它。

我实际上是在制作一个简单的聊天室,用于检测所有在线用户和待显示页面中的所有在线用户。我不知道用户是否不想或不小心关闭浏览器。我无法更新我的数据库。但根据你的回答。这对我没有帮助。很难理解。因此,我建议你让用户每隔几秒钟ping一次服务器,让它知道用户仍然在线。如果用户在某个时间帧内无法发送任何请求,则认为他处于离线/离开页面。任何示例代码或链接供参考。代码更易于理解。只需使用$.ajax发出请求,并使用setInterval每隔几秒钟重复一次请求。在服务器上,在您可以发送用户名的请求中检查谁在发送请求,这样您就知道谁在ping。当有人试图获取在线用户时,只发送那些在最后,比如说5秒钟内发送了任何请求的用户,其余用户将被视为离线。仅使用ccustom live会话不是更容易吗?
   Are you sure want to leave this page?

 *Leave on this page     * Stay on this page