Когда страница выполняет несколько сетевых запросов одновременно, они часто конкурируют за одну и ту же пропускную способность. Некритические данные, такие как аналитика, ведение журнала или фоновая синхронизация, должны быть деприоритизированы, чтобы инициированные пользователем или критические выборки данных могли выполняться быстрее.
Рекомендации по внедрению
- Определите фоновые запросы. Выясните, какие вызовы
fetch()предназначены для получения несущественных данных, которые не влияют на работу пользователя. - Примените приоритет выборки. Добавьте параметр
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 – это прогрессивное улучшение. Браузеры, которые не поддерживают эту функцию, будут игнорировать параметр и обрабатывать запрос с приоритетом по умолчанию. Для базового использования не требуется явное определение функций или резервная логика.