ページのアンロード時に、ユーザーの作品の下書きを削除するリクエストを発行している状況があります。これは、ユーザーがページを更新することを選択するまで問題なく機能します。その後、Chrome のネットワーク タブを調べると、Ajax リクエストが実際に起動される前に Chrome が新しいページを読み込んでいることが示されます。その結果、ページの読み込みによって新しいドラフトが作成され、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