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
- Identifica le richieste in background: determina quali chiamate
fetch()riguardano dati non essenziali che non influiscono sull'esperienza utente immediata. - Applica la priorità di recupero: aggiungi l'opzione
priority: 'low'all'oggetto di inizializzazionefetch().
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
importancedeprecata 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.