2016-09-01 13 views
1

私は同時に複数のajaxリクエストを開始しましたが、終了時に関数を呼び出せます。jquery ajaxStopのJavaScript相当

私はjQuery関数:ajaxStop()を見ましたが、私のプロジェクトではjQueryを使用できません。

誰もがjavascriptで同じことを行う方法を知っていますか?

ありがとうございました!

+1

ajaxStopは、おそらくあなたはそれを行うことを期待しません。これは、ajax呼び出しを妨げないイベントハンドラを単純に取り消します。 Ajax HTTPコールは非同期であり、サーバーに対して「これはもう必要ありません」と言うメカニズムを提供しません。 – Liam

答えて

4

abortメソッドを使用すると、httpコールを停止できます。

//kill the request 
xhr.abort() 

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort

+1

これは「HTTP呼び出しを停止する」ことはありません。単にJavascriptイベントが終了するのを待つだけです。 HTTPコールは引き続き実行され、期待どおりに戻ります。何も返されません。 – Liam

+0

これは正しい – Liam

2

あなたはreadyStateのを確認する小さなユーティリティ機能(アクセスグローバル)を構築することができます

window.abortAjaxCalls = function(xhr) { 
    if(xhr && xhr.readyState != 4){ 
     xhr.abort(); 
    } 
} 

window.abortAjaxCalls(xhr);