Khi tạo 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 rất hữu ích đối với một số tệp nhất định 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ó những trường hợp mà bạn muốn phân phát tệp đã 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 làm việc bằng cách thêm trình bổ trợ vào 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 dễ dàng thực hiện yêu cầu có tiêu đề "Phạm vi" bằng phản hồi được 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 được lưu vào bộ nhớ đệm.
Thuộc tính
-
hàm khởi tạo
void
Hàm
constructor
có dạng như sau:() => {...}
-
returns
-
Phương thức
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
Với đối tượng Request
và Response
làm dữ liệu đầu vào, hàm này sẽ trả về một lời hứa cho Response
mới.
Nếu Response
gốc đã chứa nội dung một phần (tức là nó có
trạng thái là 206), thì hàm này sẽ giả định rằng mã này đã đáp ứng Range:
theo các yêu cầu mà chúng tôi sẽ cung cấp và sẽ trả về nguyên trạng.
Thông số
-
request
Yêu cầu
Yêu cầu cần chứa Phạm vi: .
-
originalResponse
Phản hồi
Một câu trả lời.
Giá trị trả về
-
Promise<Response>
Một phản hồi
206 Partial Content
, trong đó nội dung phản hồi được đặt thành một phần nội dung do tiêu đềRange:
của yêu cầu chỉ định, hoặc một 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:
.