用户关闭选项卡或窗口时销毁会话

时间:2013-11-19 15:27:36

标签: javascript jquery logout php

我想要在用户关闭标签页或窗口时销毁会话而不正确注销。我认为这可能有用:

javascript:

$(window).on("beforeunload", function(){
    alert("Beforeunload called");
    $(document).load("vve_inc/php/vve_logout.php");
});

php:

<?php
session_start();
session_destroy();
?>

警报工作正常,但php脚本没有。有人有任何想法吗?

2 个答案:

答案 0 :(得分:1)

警报会停止执行代码。

在卸载时执行AJAX请求是不稳定的,并且不会一直执行。

如果您只有一个注销按钮或会话超时,那会更好。

答案 1 :(得分:0)

qwuertynl是正确的,但你可以在PHP中使用ignore_user_abort();,如果AJAX请求完成则无关紧要。我过去已经成功地大规模使用了它。

http://php.net/manual/en/function.ignore-user-abort.php

调用该函数将使您的PHP脚本运行完成,无论请求是否中止。