降低后台提取的优先级

Web 功能: 提取优先级 提取

当一个网页同时发出多个网络请求时,这些请求通常会争用相同的带宽。分析、日志记录或后台同步等非关键数据应降低优先级,以便用户发起的数据提取或关键数据提取可以更快完成。

如何实现

  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。

后备策略

Fetch API 中的 priority 选项是一项渐进增强功能。不支持该选项的浏览器会忽略该选项,并以默认优先级处理请求。对于基本用法,不需要显式特征检测或回退逻辑。