Php 防止在刷新时调用onbeforeunload()

Php 防止在刷新时调用onbeforeunload(),php,javascript,ajax,javascript-events,Php,Javascript,Ajax,Javascript Events,我有一个网页,当用户关闭选项卡或浏览器时,我正在销毁该会话。这是我的剧本 window.onbeforeunload = function() { document.write("<?php session_destroy(); ?>"); } window.onbeforeunload=function(){ 文件。填写(“”); } 我的问题是,我只想在浏览器关闭时销毁会话。我应该使用哪个事件?这在所有浏览器中都可能吗。?请提供帮助。当浏览器默认关闭时,会话将被销毁。这实

我有一个网页,当用户关闭选项卡或浏览器时,我正在销毁该会话。这是我的剧本

window.onbeforeunload = function() { 
document.write("<?php session_destroy();
?>");
 }
window.onbeforeunload=function(){
文件。填写(“”);
}

我的问题是,我只想在浏览器关闭时销毁会话。我应该使用哪个事件?这在所有浏览器中都可能吗。?请提供帮助。

当浏览器默认关闭时,会话将被销毁。这实际上是由PHP配置选项
session.cookie\u life
控制的:

session.cookie\u lifetime指定发送到浏览器的cookie的生存期(以秒为单位)。值0表示“直到浏览器关闭”。默认值为0

当浏览器关闭时,您试图在服务器端显式销毁会话数据的操作无法完成。无法判断(至少从Javascript)页面是否正在重新加载或浏览器是否正在关闭-这两个事件都以相同的方式触发
onunload()
onbeforeuload()


关于这一点的另一点是,它将涉及在浏览器关闭时向服务器发送请求,这是极不可能被允许的,也不能依赖的——毕竟,如果服务器没有响应怎么办?这可能会导致浏览器挂起等待响应,这将破坏用户体验,浏览器开发人员永远不会允许这样做。

这不正常,您的会话将在页面加载时被破坏。你不能把javascript和PHP混用,因为javascript是客户端,PHP是服务器端,所以它不起作用。我们如何在关闭浏览器时破坏会话?