Lorsqu'une page effectue plusieurs requêtes réseau simultanées, elles se disputent souvent la même bande passante. Les données non critiques telles que les analyses, la journalisation ou la synchronisation en arrière-plan doivent être dépriorisées afin que les récupérations de données initiées par l'utilisateur ou critiques puissent se terminer plus rapidement.
Mise en œuvre
- Identifier les requêtes en arrière-plan : déterminez quels appels
fetch()concernent des données non essentielles qui n'ont pas d'impact immédiat sur l'expérience utilisateur. - Appliquer la priorité de récupération : ajoutez l'option
priority: 'low'à l'objet d'initialisationfetch().
Exemple de code
// 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'
});
Bonnes pratiques
- À FAIRE : Utilisez
priority: 'low'pour les données d'analyse, les balises ou les données de télémétrie qui ne sont pas requises pour la vue actuelle. - À FAIRE : Utilisez
priority: 'low'pour "précharger" les données dont l'utilisateur pourrait avoir besoin plus tard, en veillant à ne pas ralentir ce dont il a besoin maintenant. - N'utilisez PAS
priority: 'low'pour les récupérations essentielles à l'expérience utilisateur. - N'utilisez PAS la clé
importanceobsolète dans l'objet d'options de récupération. La clé correcte estpriority.
Stratégie de remplacement
L'option priority de l'API Fetch est une amélioration progressive. Les navigateurs qui ne sont pas compatibles avec cette option l'ignoreront et traiteront la requête avec la priorité par défaut. Aucune détection explicite des fonctionnalités ni logique de remplacement n'est requise pour une utilisation de base.