Ajax 通信中に、ページの更新が行われたり
リンク等からページを遷移(リクエストが発生)した場合
一部のブラウザで通信エラーが発生する。
Chrome では、通信中だった Ajax リクエスト先に、再度リクエストを行うような挙動となる。
つまり、Ajax 通信中が正常に完了するまでは、別ページに遷移できない。
これを回避するため、別ページへの遷移を beforeunload によりイベントキャッチし
Ajax の XMLHttpRequest を abort() で中断させることで
正常に遷移させることができるようになる。
$("body").bind("ajaxSend", function(c, xhr) {
$( window ).bind( 'beforeunload', function() {
xhr.abort();
})
});
次のページ
>>