Membatalkan prioritas pengambilan latar belakang

Saat halaman melakukan beberapa permintaan jaringan secara bersamaan, permintaan tersebut sering kali bersaing untuk mendapatkan bandwidth yang sama. Data yang tidak penting seperti analisis, logging, atau sinkronisasi latar belakang harus dideprioritaskan agar pengambilan data yang dimulai oleh pengguna atau data penting dapat diselesaikan lebih cepat.

Cara menerapkan

  1. Identifikasi permintaan latar belakang: Tentukan panggilan fetch() mana yang ditujukan untuk data yang tidak penting dan tidak memengaruhi pengalaman pengguna secara langsung.
  2. Terapkan prioritas pengambilan: Tambahkan opsi priority: 'low' ke objek inisialisasi fetch().

Kode contoh

// Use high priority (default) for critical UI updates
const criticalData = await fetch('/api/data');

// Explicitly deprioritize background analytics
fetch('/api/analytics', {
  method: 'POST',
  body: JSON.stringify(eventData),
  // Lower the priority to prevent network contention
  priority: 'low'
});

Praktik terbaik

  • GUNAKAN priority: 'low' untuk analisis, beacon, atau data telemetri yang tidak diperlukan untuk tampilan saat ini.
  • LAKUKAN penggunaan priority: 'low' untuk "mengambil data di awal" yang mungkin diperlukan pengguna nanti, sehingga tidak memperlambat apa yang mereka butuhkan sekarang.
  • JANGAN gunakan priority: 'low' untuk pengambilan yang penting bagi pengalaman pengguna.
  • JANGAN gunakan kunci importance yang tidak digunakan lagi di objek opsi pengambilan. Kunci yang benar adalah priority.

Strategi penggantian

Opsi priority di Fetch API adalah progressive enhancement. Browser yang tidak mendukungnya akan mengabaikan opsi tersebut dan memperlakukan permintaan dengan prioritas default. Tidak diperlukan deteksi fitur eksplisit atau logika penggantian untuk penggunaan dasar.