このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

XMLHttpRequestEventTarget: abort イベント

メモ: この機能はウェブワーカー内で利用可能ですが、サービスワーカーでは使用できません。

abort イベントは、例えばプログラムが XMLHttpRequest.abort() を呼び出した時など、リクエストが中断されたときに発行されます。

構文

このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("abort", (event) => { }) onabort = (event) => { } 

イベント型

ProgressEvent です。 Event から継承しています。

Event ProgressEvent

イベントプロパティ

下記のプロパティに加え、親インターフェイスである 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

api.XMLHttpRequestUpload.abort_event

関連情報