Снизить приоритет фоновых извлечений

Когда страница выполняет несколько сетевых запросов одновременно, они часто конкурируют за одну и ту же пропускную способность. Некритические данные, такие как аналитика, ведение журнала или фоновая синхронизация, должны быть деприоритизированы, чтобы инициированные пользователем или критические выборки данных могли выполняться быстрее.

Рекомендации по внедрению

  1. Определите фоновые запросы. Выясните, какие вызовы fetch() предназначены для получения несущественных данных, которые не влияют на работу пользователя.
  2. Примените приоритет выборки. Добавьте параметр priority: 'low' в объект инициализации fetch().

Пример кода

// 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'
});

Рекомендации

  • ИСПОЛЬЗУЙТЕ priority: 'low' для аналитики, веб-маяков или телеметрических данных, которые не требуются для текущего представления.
  • РЕКОМЕНДУЕТСЯ использовать priority: 'low' для предварительного получения данных, которые могут понадобиться пользователю позже, чтобы не замедлять работу с тем, что нужно сейчас.
  • НЕ ИСПОЛЬЗУЙТЕ priority: 'low' для получения данных, критически важных для пользователей.
  • НЕ ИСПОЛЬЗУЙТЕ устаревший ключ importance в объекте параметров получения. Правильный ключ: priority.

Резервная стратегия

Параметр priority в Fetch API – это прогрессивное улучшение. Браузеры, которые не поддерживают эту функцию, будут игнорировать параметр и обрабатывать запрос с приоритетом по умолчанию. Для базового использования не требуется явное определение функций или резервная логика.