Cuando una página realiza varias solicitudes de red simultáneas, estas suelen competir por el mismo ancho de banda. Los datos no críticos, como las estadísticas, el registro o la sincronización en segundo plano, deben tener menos prioridad para que las recuperaciones de datos iniciadas por el usuario o críticas se puedan completar con mayor rapidez.
Cómo implementarlo
- Identifica las solicitudes en segundo plano: Determina qué llamadas a
fetch()son para datos no esenciales que no afectan la experiencia del usuario inmediata. - Aplica la prioridad de recuperación: Agrega la opción
priority: 'low'al objeto de inicializaciónfetch().
Ejemplo de código
// 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'
});
Prácticas recomendadas
- SÍ usa
priority: 'low'para estadísticas, balizas o datos de telemetría que no se requieren para la vista actual. - SÍ usa
priority: 'low'para "recuperar previamente" los datos que el usuario podría necesitar más adelante, lo que garantiza que no se ralentice lo que necesita ahora. - NO uses
priority: 'low'para recuperaciones que sean fundamentales para la experiencia del usuario. - NO uses la clave
importanceobsoleta en el objeto de opciones de recuperación. La clave correcta espriority.
Estrategia de resguardo
La opción priority de la API de Fetch es una mejora progresiva. Los navegadores que no la admitan ignorarán la opción y tratarán la solicitud con la prioridad predeterminada. No se requiere una detección de funciones explícita ni una lógica de resguardo para el uso básico.