XMLHttpRequestEventTarget: abort イベント
abort イベントは、例えばプログラムが XMLHttpRequest.abort() を呼び出した時など、リクエストが中断されたときに発行されます。
構文
このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。
js
addEventListener("abort", (event) => { })
onabort = (event) => { }
イベント型
ProgressEvent です。 Event から継承しています。
イベントプロパティ
下記のプロパティに加え、親インターフェイスである Event のプロパティを利用できます。
lengthComputable読取専用- 
論理値のフラグで、このプロセスで行われる作業の合計と、すでに行われた作業の量が計算可能かどうかを示します。言い換えれば、進捗が計測可能かどうかを示します。
 loaded読取専用- 
64 ビット符号なし整数値で、このプロセスで既に作業を行った量を示します。作業した比率は、
totalをこのプロパティの値で割ることで算出できます。 HTTP を使用してリソースをダウンロードする場合、これは HTTP メッセージの本文のみをカウントし、ヘッダーやその他のオーバーヘッドは含まれません。 total読取専用- 
64 ビット符号なし整数で、基礎となるプロセスが実行中の作業の総量を表します。 HTTP を使用してリソースをダウンロードする場合、これは
Content-Length(メッセージの本文のサイズ)であり、ヘッダーやその他のオーバーヘッドは含まれません。 
例
>ライブデモ
HTML
html
<div class="controls">
  <input
    class="xhr success"
    type="button"
    name="xhr"
    value="クリックで XHR 開始(成功)" />
  <input
    class="xhr error"
    type="button"
    name="xhr"
    value="クリックで XHR 開始(エラー)" />
  <input
    class="xhr abort"
    type="button"
    name="xhr"
    value="クリックで XHR 開始(中止)" />
</div>
<textarea readonly class="event-log"></textarea>
JavaScript
js
const xhrButtonSuccess = document.querySelector(".xhr.success");
const xhrButtonError = document.querySelector(".xhr.error");
const xhrButtonAbort = document.querySelector(".xhr.abort");
const log = document.querySelector(".event-log");
function handleEvent(e) {
  log.textContent = `${log.textContent}${e.type}: ${e.loaded} bytes transferred\n`;
}
function addListeners(xhr) {
  xhr.addEventListener("loadstart", handleEvent);
  xhr.addEventListener("load", handleEvent);
  xhr.addEventListener("loadend", handleEvent);
  xhr.addEventListener("progress", handleEvent);
  xhr.addEventListener("error", handleEvent);
  xhr.addEventListener("abort", handleEvent);
}
function runXHR(url) {
  log.textContent = "";
  const xhr = new XMLHttpRequest();
  addListeners(xhr);
  xhr.open("GET", url);
  xhr.send();
  return xhr;
}
xhrButtonSuccess.addEventListener("click", () => {
  runXHR("/shared-assets/images/examples/balloon.jpg");
});
xhrButtonError.addEventListener("click", () => {
  runXHR("https://example.com/some-path");
});
xhrButtonAbort.addEventListener("click", () => {
  runXHR("/shared-assets/images/examples/balloon.jpg").abort();
});
結果
XMLHttpRequestUpload の使い方
アップロードが完了する前に停止するには、 abort イベントを使用することができます。ファイルをアップロードして進捗バーを表示する完全なサンプルコードについては、メインの XMLHttpRequestUpload ページを参照してください。
js
// 中止時には進捗バーを非表示にする
// なお、このイベントは xhr オブジェクトでもリスナーを登録することができる
function errorAction(event) {
  progressBar.classList.remove("visible");
  log.textContent = `Upload failed: ${event.type}`;
}
xhr.upload.addEventListener("abort", errorAction);
仕様書
| Specification | 
|---|
| XMLHttpRequest> # event-xhr-abort>  | 
            
| XMLHttpRequest> # handler-xhr-onabort>  | 
            
ブラウザーの互換性
>api.XMLHttpRequest.abort_event
Loading…
api.XMLHttpRequestUpload.abort_event
Loading…