Quando uma página faz várias solicitações de rede simultâneas, elas geralmente competem pela mesma largura de banda. Dados não críticos, como análises, registros ou sincronização em segundo plano, precisam ser despriorizados para que as buscas de dados iniciadas pelo usuário ou críticas sejam concluídas mais rapidamente.
Como fazer a implementação
- Identificar solicitações em segundo plano: determine quais chamadas de
fetch()são para dados não essenciais que não afetam a experiência imediata do usuário. - Aplicar prioridade de busca: adicione a opção
priority: 'low'ao objeto de inicializaçãofetch().
Exemplo 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áticas recomendadas
- USE
priority: 'low'para análises, beacons ou dados de telemetria que não são necessários para a visualização atual. - RECOMENDADO: use
priority: 'low'para "buscar com antecedência" dados que o usuário pode precisar mais tarde, garantindo que isso não deixe mais lento o que ele precisa agora. - NÃO use
priority: 'low'para buscas que são essenciais para a experiência do usuário. - NÃO use a chave
importancedescontinuada no objeto de opções de busca. A chave correta épriority.
Estratégia de fallback
A opção priority na API Fetch é um aprimoramento progressivo. Os navegadores que não são compatíveis com ela vão ignorar a opção e tratar a solicitação com a prioridade padrão. Nenhuma detecção de recursos explícita ou lógica de substituição é necessária para o uso básico.