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ć?
- 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. - Zastosuj priorytet pobierania: dodaj opcję
priority: 'low'do obiektu inicjującegofetch().
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
importancew obiekcie opcji pobierania. Prawidłowy klucz topriority.
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.