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

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:

    () => {...}

Phương thức

createPartialResponse()

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

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