Javascript 是否在选项卡关闭时清除PHP会话?

Javascript 是否在选项卡关闭时清除PHP会话?,javascript,php,jquery,Javascript,Php,Jquery,每次用户关闭其选项卡时,我都尝试注销。我已经看到了所有类似的问题,但我仍然没有找到任何有效的方法 以下是我所做的: <script type="text/javascript"> $(document).ready(function() { $(window).bind("beforeunload", function() { confirm("Do you really want to logout?") && $.a

每次用户关闭其选项卡时,我都尝试注销。我已经看到了所有类似的问题,但我仍然没有找到任何有效的方法

以下是我所做的:

<script type="text/javascript">
    $(document).ready(function() {
        $(window).bind("beforeunload", function() {
            confirm("Do you really want to logout?") && $.ajax({
                type: "GET",
                url: "/admin/account/logout"
            })
        })
    });
</script>

$(文档).ready(函数(){
$(window.bind(“beforeunload”,function()){
确认(“您真的想注销吗?”)&&&$.ajax({
键入:“获取”,
url:“/admin/account/logout”
})
})
});
我尝试过不使用
确认
,但仍然不起作用。我绝对相信这是可以做到的,因为我的银行网站也有同样的功能

编辑:
如果不使用
confirm
,它确实会启动注销ajax,但即使在我浏览页面时也是如此。这提醒了我,我的银行网站使用类似AngularJS的东西,这不是一个真正的链接浏览系统,对吗?也许这就是它在那里工作的原因吧?

每次您说您的浏览器卸载当前html时,都会触发
beforeunload
。即使你点击一个链接,这种情况也会发生。当您关闭一个选项卡时,您也会关闭执行该页面js的环境。我认为这不能在本地完成。

代码的问题是,请求是异步执行的,并且随着窗口的关闭而终止。 如果将
async
参数设置为false,则在关闭选项卡/窗口之前将执行ajax请求


不幸的是,这并不能解决您的问题,因为每次您要离开页面时都会触发此事件。如果你只是想破解一个解决方案,你可以使用这里提到的方法:-在服务器端触发一个超时,如果用户在超时后没有提出另一个请求,就注销该用户。

也许这会有帮助是的,我刚刚更新了我的问题。我添加了一个解释,即它触发注销ajax,但即使在我浏览页面时。。。