當網頁同時發出多個網路要求時,這些要求通常會爭用相同的頻寬。分析、記錄或背景同步等非重要資料應降低優先順序,以便更快完成使用者啟動或重要資料擷取。
導入方式
- 找出背景要求:判斷哪些
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。
備用策略
Fetch API 中的 priority 選項是漸進增強功能。不支援這項功能的瀏覽器會忽略該選項,並以預設優先順序處理要求。基本用途不需要明確的功能偵測或備用邏輯。