yêu cầu phạm vi hộp công việc

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:

    () => {...}

Phương thức

createPartialResponse()

workbox-range-requests.createPartialResponse(
  request: Request,
  originalResponse: Response,
)

Với các đối tượng RequestResponse 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ồi 416 Range Not Satisfiable nếu không thể đáp ứng các điều kiện của tiêu đề Range:.