Ajax调用无法在onbeforeunload事件中工作

时间:2013-03-07 12:18:26

标签: jquery ajax onbeforeunload

我有一些功能,我需要在使用浏览器的“X”按钮关闭浏览器之前进行ajax调用以更新数据库值。我在相关文件的标题中使用了以下代码:

$(document).ready(function() {
     window.onbeforeunload = function(){
        $.ajax('<?php echo base_url();?>index.php/ajax/myfunction?a=4');
     }
});

关闭浏览器时,该功能有效,但不执行ajax调用..

解决方案是什么?

1 个答案:

答案 0 :(得分:2)

也许不是最漂亮的代码,但在我的经验中,在超时线程中产生ajax调用很好地跨浏览器

$(window).bind("beforeunload", function (e) {
    setTimeout(function(){
        $.ajax({
            type: 'GET',
            async: false,
            url: "[YOUR API CALL]"
        });
    }, 0);
});

注意我上次使用它时是在使用Jquery 1.7

的项目上