Bagaimanakah Saya Boleh Mengganggu Permintaan Pengambilan HTTP dalam JavaScript?

Susan Sarandon
Lepaskan: 2024-11-23 05:19:08
asal
1004 orang telah melayarinya

How Can I Interrupt HTTP Fetch Requests in JavaScript?

Mengganggu Permintaan Pengambilan HTTP dengan Pembatalan

Pengenalan fetch() dalam JavaScript telah merevolusikan pengendalian permintaan HTTP, menyediakan antara muka yang serba boleh dan intuitif. Walau bagaimanapun, kebimbangan sering timbul mengenai keupayaan untuk menamatkan permintaan ini lebih awal.

Batalkan Mekanisme dalam fetch()

Sehingga September 2017, fetch() menggabungkan peningkatan ketara: sokongan untuk parameter isyarat . Parameter ini membenarkan pembangun membatalkan permintaan menggunakan AbortController dan AbortSignal yang sepadan. Pada mulanya, sokongan penyemak imbas adalah terhad, tetapi kini (sehingga Mac 2020), kebanyakan penyemak imbas utama (Edge, Firefox, Chrome, Safari, Opera dan lain-lain) menerima sepenuhnya fungsi ini.

Pelaksanaan

Proses pembatalan melibatkan empat langkah:

  1. Buat AbortController:
const controller = new AbortController()
Salin selepas log masuk
  1. Dapatkan Isyarat Abort:
const signal = controller.signal
Salin selepas log masuk
  1. Lepasi isyarat untuk mengambil():
fetch(urlToFetch, {
    method: 'get',
    signal: signal,
})
Salin selepas log masuk
  1. Batalkan permintaan pada bila-bila masa dikehendaki:
controller.abort();
Salin selepas log masuk

Contoh

Untuk menggambarkan cara ia berfungsi dalam amalan, pertimbangkan contoh berikut:

// 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()
}
Salin selepas log masuk

Dengan menggunakan controller.abort() , permintaan boleh diganggu pada bila-bila masa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengganggu Permintaan Pengambilan HTTP dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan