JavaScript/DOM/Event/abort
Aus SELFHTML-Wiki
< JavaScript | DOM | Event
Der abort-Event-Handler wird bei Abbruch eines Vorgangs ausgelöst. Darunter ist im Allgemeinen kein Abbruch wegen einer Fehlerbedingung zu verstehen, sondern ein Abbruch, der ausdrücklich angefordert wurde. Der User kann eine neue URL abrufen, während das Dokument oder Medien noch laden. Bei Datenzugriffen kann die abort-Methode von AbortController (fetch), XMLHttpRequest oder FileReader aufgerufen worden sein. Nur bei der Indexed DB ist es anders, hier zeigt das abort-Event den Abbruch einer Transaktion an, was vielerlei Gründe haben kann.
bubbles |
nein
Ausnahme: ja für |
---|---|
cancelable |
nein |
mögliche Auslöser |
|
Event-Objekt |
|
Beispiel 1: Abbruch eines Ladevorgangs
<h1>(beim Aufruf sofort ESC drücken!)</h1>
<img src="onabort.jpg"
width="400"
height="600"
alt="Grafik"
onabort="alert('Warum wollen Sie das Bild nicht sehen?')">
Beispiel 2: Abbruch einer Fetch-Operation
Angenommen, im HTML gäbe es einen Button zum Laden irgendwelcher Daten sowie Button, um diesen Ladevorgang abzubrechen.
let abortCtrl = new AbortController();
document.getElementById("downloadBtn").addEventListener("click", function() {
fetch(url, { signal: abortCtl.signal })
.then( /* Response verarbeiten */ )
.catch(function(fehler) {
alert("Download fehlgeschlagen: " + fehler.message);
});
});
document.getElementById("abbruchBtn").addEventListener("click", function abortDownload() {
abortCtrl.abort();
});
abortCtrl.signal.addEventListener("abort", function() {
console.log("Die Download-Anforderung wurde abgebrochen");
});
Das Beispiel zeigt eine abbrechbare Fetch-Operation. Falls der Datenempfang mit der abort-Methode des AbortController abgebrochen wird, löst er das abort-Event auf dem AbortSignal Objekt aus. Der EventHandler gibt dann in der Konsole eine Meldung aus.
alert()
eine Meldung ausgegeben.