我有一种情况,在页面卸载时,我发出了删除用户作品草稿的请求。这工作正常,直到用户选择刷新页面,然后检查 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 上