Khi một trang thực hiện nhiều yêu cầu mạng cùng lúc, các yêu cầu đó thường cạnh tranh để có cùng băng thông. Bạn nên giảm mức độ ưu tiên cho dữ liệu không quan trọng như dữ liệu phân tích, ghi nhật ký hoặc đồng bộ hoá trong nền để quá trình tìm nạp dữ liệu quan trọng hoặc do người dùng bắt đầu có thể hoàn tất nhanh hơn.
Cách triển khai
- Xác định các yêu cầu trong nền: Xác định lệnh gọi
fetch()nào dành cho dữ liệu không cần thiết, không ảnh hưởng đến trải nghiệm người dùng ngay lập tức. - Áp dụng mức độ ưu tiên tìm nạp: Thêm tuỳ chọn
priority: 'low'vào đối tượng khởi chạyfetch().
Mã mẫu
// 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'
});
Các phương pháp hay nhất
- NÊN sử dụng
priority: 'low'cho dữ liệu phân tích, báo hiệu hoặc đo từ xa không bắt buộc cho chế độ xem hiện tại. - NÊN sử dụng
priority: 'low'để "tìm nạp trước" dữ liệu mà người dùng có thể cần sau này, đảm bảo dữ liệu đó không làm chậm những gì họ cần ngay bây giờ. - KHÔNG sử dụng
priority: 'low'cho các hoạt động tìm nạp quan trọng đối với trải nghiệm người dùng. - KHÔNG sử dụng khoá
importancekhông dùng nữa trong đối tượng tuỳ chọn tìm nạp. Khoá chính xác làpriority.
Chiến lược dự phòng
Tuỳ chọn priority trong Fetch API là một tính năng cải tiến tăng dần. Những trình duyệt không hỗ trợ tuỳ chọn này sẽ bỏ qua và xử lý yêu cầu theo mức độ ưu tiên mặc định. Bạn không cần phát hiện tính năng rõ ràng hoặc logic dự phòng cho việc sử dụng cơ bản.