Giảm mức độ ưu tiên của các hoạt động tìm nạp trong nền

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

  1. 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.
  2. Á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ạy fetch().

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á importance khô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.