Deprioritizza i recuperi in background

Funzionalità web: Fetch priority Fetch

Quando una pagina esegue più richieste di rete contemporaneamente, queste spesso competono per la stessa larghezza di banda. I dati non critici, come analisi, logging o sincronizzazione in background, devono essere declassati in modo che i recuperi di dati avviati dall'utente o critici possano essere completati più rapidamente.

Come implementare

  1. Identifica le richieste in background: determina quali chiamate fetch() riguardano dati non essenziali che non influiscono sull'esperienza utente immediata.
  2. Applica la priorità di recupero: aggiungi l'opzione priority: 'low' all'oggetto di inizializzazione fetch().

Esempio di codice

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

Best practice

  • SÌ: utilizza priority: 'low' per dati di analisi, beacon o telemetria non necessari per la visualizzazione corrente.
  • SÌ: utilizza priority: 'low' per il "prefetching" dei dati di cui l'utente potrebbe avere bisogno in un secondo momento, assicurandoti che non rallenti ciò di cui ha bisogno ora.
  • NON utilizzare priority: 'low' per i recuperi fondamentali per l'esperienza utente.
  • NON utilizzare la chiave importance deprecata nell'oggetto delle opzioni di recupero. La chiave corretta è priority.

Strategia di riserva

L'opzione priority nell'API Fetch è un potenziamento progressivo. I browser che non la supportano ignoreranno l'opzione e tratteranno la richiesta con la priorità predefinita. Per l'utilizzo di base non è necessario alcun rilevamento esplicito delle funzionalità o logica di riserva.