微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – jQuery ajax调用onunload处理程序在手动刷新后获取页面时触发.我如何保证首先发生onunload?

我有一种情况,在页面卸载我发出删除用户工作草稿的请求.在用户选择刷新页面之前,此工作正常,因此检查Chrome的网络选项卡会显示Chrome正在加载新页面,然后实际触发了ajax请求.结果是页面加载创建了新草稿,然后通过ajax调用立即删除.这基本上就是我在做的事情:

window.onbeforeunload = function(){
    if (pageUpdated){
        return 'Are you sure you want to abandon this draft?';
    }
}

window.onunload = function(){
    $.ajax({
        async: false,
        type: 'DELETE',
        url: '/some/url/'
    });
}

有没有办法在发送新页面请求之前强制onunload处理程序完成?

浏览器测试:( Chrome 9,FF 3.6)在Ubuntu 10.04 Lucid上

解决方法:

在onbeforeunload或$.unload()中使用async = false设置AJAX对象.这将确保在卸载页面之前完成ajax调用.

我知道这个问题已经有几个月了,但我想添加这些信息,以防有人帮助任何人搜索与AJAX类似的问题!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐