Quita prioridad a las recuperaciones en segundo plano

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

  1. Identifica las solicitudes en segundo plano: Determina qué llamadas a fetch() son para datos no esenciales que no afectan la experiencia del usuario inmediata.
  2. Aplica la prioridad de recuperación: Agrega la opción priority: 'low' al objeto de inicialización fetch().

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 importance obsoleta en el objeto de opciones de recuperación. La clave correcta es priority.

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.