0

更新ボタンが押されたときに、ページで発生しているすべてのリクエスト/スクリプトを停止することは可能ですか?
数分かかる$.ajaxリクエストがあります。アンロードイベントでwindow.stop()を実行しようとしました。xhr = $ .ajax(...);を試しました。およびxhr.abort(); インターネット上で見つかった他の方法で、何も機能しません。

これも可能ですか?なぜブラウザはそのリクエストが終了するのを待って応答を送り返し、ページを更新しないのですか?


後の編集(解決済み):待機中の問題は実際にはサーバーにあるようです。ajax呼び出しで、スクリプトがSESSIONを使用している場合、xhrを中止しても、リクエストが終了するまでWebページはフリーズします。

何故ですか?説明:

セッションデータは通常、スクリプトが終了した後、session_write_close()を呼び出さなくても保存されますが、セッションデータは同時書き込みを防ぐためにロックされているため、一度に1つのスクリプトのみがセッションを操作できます。フレームセットをセッションと一緒に使用すると、このロックによりフレームが1つずつ読み込まれることがあります。セッション変数へのすべての変更が完了したらすぐにセッションを終了することにより、すべてのフレームをロードするために必要な時間を短縮できます。

4

1 に答える 1

5

こちらのようにリフレッシュ直前にキャンセルしてみてはいかがでしょうか?

window.onbeforeunload = function(event) {
    xhr.abort();
};
于 2013-01-04T18:59:57.663 に答える