jQuery:如何在卸载窗口之前调用函数

时间:2014-08-09 11:00:30

标签: javascript php jquery ajax

我想在关闭窗口之前调用一个函数。

例如,我想在关闭页面之前调用ajax。我正在使用以下代码,但它不起作用。

$(window).bind('beforeunload', function(){
        $.ajax({
        url:'logout.php',
        type:'POST'
          });
});

在关闭窗口之前调用函数的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

您的代码很可能正在运行,但是当它启动异步 ajax请求并且浏览器在触发onbeforeunload后立即拆除页面时,请求可能永远不会被发送(或如果它被发送,可能会被中止)。

onbeforeunload的事件处理程序只允许执行非常有限的事情(并且列表因浏览器而异,并且列表会随着浏览器更新而频繁更改) 。出于这个原因,使用onbeforeunload用于除了一个目的以外的任何其他目的,为您提供最后一个机会,通过离开页面来警告用户丢失信息,不是一个好主意。

答案 1 :(得分:0)

您编写的代码只是进行ajax调用,但即使在调用之前,您的窗口也会退出。即使请求已发送,也可能在中间中止。

答案 2 :(得分:0)

试试这段代码:

   function WinClose() {
             $.ajax({
               url:'logout.php',
               type:'POST'
             });
             return false;
    }
    window.onbeforeunload = WinClose;

将此代码写入<head>