Khi đưa ra yêu cầu, bạn có thể đặt tiêu đề range
để yêu cầu máy chủ chỉ trả về một phần của yêu cầu đầy đủ. Điều này hữu ích đối với một số tệp như tệp video, trong đó người dùng có thể thay đổi vị trí phát video.
Mô-đun này có chức năng gì?
Có thể có trường hợp bạn muốn phân phát một tệp được lưu vào bộ nhớ đệm nhưng trình duyệt đã đặt tiêu đề range
. Thông thường, tiêu đề sẽ bị bỏ qua.
Mô-đun này sẽ đọc phản hồi được lưu vào bộ nhớ đệm và trả về phạm vi dữ liệu chỉ định.
Cách sử dụng cơ bản
Bạn có thể sử dụng Yêu cầu phạm vi hộp công việc bằng cách thêm trình bổ trợ vào chiến lược mà bạn muốn kiểm tra các yêu cầu phạm vi.
import {registerRoute} from 'workbox-routing';
import {CacheFirst} from 'workbox-strategies';
import {RangeRequestsPlugin} from 'workbox-range-requests';
registerRoute(
({url}) => url.pathname.endsWith('.mp4'),
new CacheFirst({
plugins: [
new RangeRequestsPlugin(),
],
});
);
Cách sử dụng nâng cao
Nếu muốn sử dụng logic này bên ngoài Trình bổ trợ, bạn có thể sử dụng hàm createPartialResponse()
.
import {createPartialResponse} from 'workbox-range-requests';
createPartialResponse(request, cachedResponse);
Để biết thêm thông tin, hãy xem tài liệu tham khảo.
Loại
RangeRequestsPlugin
Trình bổ trợ yêu cầu phạm vi giúp bạn dễ dàng thực hiện yêu cầu có tiêu đề "Phạm vi" bằng một phản hồi đã lưu vào bộ nhớ đệm.
Trình bổ trợ này thực hiện việc này bằng cách chặn lệnh gọi lại trình bổ trợ cachedResponseWillBeUsed
và trả về tập hợp con thích hợp của nội dung phản hồi đã lưu vào bộ nhớ đệm.
Thuộc tính
-
hàm khởi tạo
void
Hàm
constructor
sẽ có dạng như sau:() => {...}
-
giá trị trả về
-
Phương thức
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Với các đối tượng Request
và Response
làm dữ liệu đầu vào, thao tác này sẽ trả về một lời hứa cho một Response
mới.
Nếu Response
gốc đã chứa một phần nội dung (tức là có trạng thái 206), thì giả định rằng mã này đã đáp ứng các yêu cầu về Range:
và sẽ trả về nguyên trạng.
Tham số
-
request
Yêu cầu
Yêu cầu phải chứa tiêu đề Range:.
-
originalResponse
Phản hồi
Một câu trả lời.
Giá trị trả về
-
Hứa hẹn<Phản hồi>
Phản hồi
206 Partial Content
, trong đó nội dung phản hồi được đặt thành phần nội dung được chỉ định theo tiêu đềRange:
của yêu cầu hoặc phản hồi416 Range Not Satisfiable
nếu không thể đáp ứng các điều kiện của tiêu đềRange:
.