Obniż priorytet pobierania w tle

Funkcje internetowe: Priorytet pobierania Pobieranie

Gdy strona wykonuje wiele żądań sieciowych jednocześnie, często konkurują one o tę samą przepustowość. Dane niekrytyczne, takie jak dane analityczne, logi czy synchronizacja w tle, powinny mieć niższy priorytet, aby pobieranie danych zainicjowane przez użytkownika lub danych krytycznych mogło zakończyć się szybciej.

Jak to zrobić?

  1. Identyfikowanie żądań w tle: określ, które wywołania fetch() dotyczą nieistotnych danych, które nie mają wpływu na bezpośrednie wrażenia użytkownika.
  2. Zastosuj priorytet pobierania: dodaj opcję priority: 'low' do obiektu inicjującego fetch().

Przykładowy kod

// 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'
});

Sprawdzone metody

  • UŻYWAJ priority: 'low' do danych analitycznych, sygnałów nawigacyjnych lub danych telemetrycznych, które nie są wymagane w bieżącym widoku.
  • UŻYWAJ priority: 'low' do „pobierania z wyprzedzeniem” danych, których użytkownik może potrzebować później, upewniając się, że nie spowalnia to tego, czego potrzebuje teraz.
  • NIE używaj priority: 'low' do pobierania danych, które są kluczowe dla wygody użytkowników.
  • NIE używaj wycofanego klucza importance w obiekcie opcji pobierania. Prawidłowy klucz to priority.

Strategia zastępcza

Opcja priority w interfejsie Fetch API to progresywne ulepszanie. Przeglądarki, które nie obsługują tej opcji, zignorują ją i potraktują żądanie z domyślnym priorytetem. W przypadku podstawowego użycia nie jest wymagane jawne wykrywanie funkcji ani logika kreacji zastępczej.