Heim > Web-Frontend > js-Tutorial > Wie kann ich HTTP-Abrufanforderungen in JavaScript unterbrechen?

Wie kann ich HTTP-Abrufanforderungen in JavaScript unterbrechen?

Susan Sarandon
Freigeben: 2024-11-23 05:19:08
Original
1054 Leute haben es durchsucht

How Can I Interrupt HTTP Fetch Requests in JavaScript?

Unterbrechen von HTTP-Abrufanforderungen durch Abbruch

Die Einführung von fetch() in JavaScript hat die Verarbeitung von HTTP-Anforderungen revolutioniert und eine vielseitige und intuitive Benutzeroberfläche bereitgestellt. Es bestehen jedoch häufig Bedenken hinsichtlich der Möglichkeit, diese Anfragen vorzeitig zu beenden.

Abbruchmechanismen in fetch()

Seit September 2017 enthält fetch() eine wesentliche Verbesserung: Unterstützung für den Signalparameter . Mit diesem Parameter können Entwickler Anforderungen mithilfe eines AbortControllers und des entsprechenden AbortSignals abbrechen. Anfangs war die Browserunterstützung begrenzt, aber jetzt (Stand März 2020) unterstützen die meisten gängigen Browser (Edge, Firefox, Chrome, Safari, Opera und andere) diese Funktionalität vollständig.

Implementierung

Der Stornierungsprozess umfasst vier Schritte:

  1. Erstellen Sie eine AbortController:
const controller = new AbortController()
Nach dem Login kopieren
  1. Erhalten Sie das AbortSignal:
const signal = controller.signal
Nach dem Login kopieren
  1. Übergeben Sie das Signal an fetch():
fetch(urlToFetch, {
    method: 'get',
    signal: signal,
})
Nach dem Login kopieren
  1. Brechen Sie die Anfrage jederzeit ab gewünscht:
controller.abort();
Nach dem Login kopieren

Beispiel

Um zu veranschaulichen, wie es in der Praxis funktioniert, betrachten Sie das folgende Beispiel:

// Create an instance.
const controller = new AbortController()
const signal = controller.signal

/*
// Register a listenr.
signal.addEventListener("abort", () => {
    console.log("aborted!")
})
*/


function beginFetching() {
    console.log('Now fetching');
    var urlToFetch = "https://httpbin.org/delay/3";

    fetch(urlToFetch, {
            method: 'get',
            signal: signal,
        })
        .then(function(response) {
            console.log(`Fetch complete. (Not aborted)`);
        }).catch(function(err) {
            console.error(` Err: ${err}`);
        });
}


function abortFetching() {
    console.log('Now aborting');
    // Abort.
    controller.abort()
}
Nach dem Login kopieren

Durch Aufruf von controller.abort() , die Anfrage kann jederzeit unterbrochen werden.

Das obige ist der detaillierte Inhalt vonWie kann ich HTTP-Abrufanforderungen in JavaScript unterbrechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage