工作方塊範圍-要求

提出要求時,您可以設定 range 標頭,指示伺服器只傳回完整要求的一部分。這對影片檔案等特定檔案來說非常實用,因為使用者可能會變更播放影片的位置。

這個模組有什麼功用?

在某些情況下,您可能會想提供快取檔案,但瀏覽器已設定 range 標頭。一般來說,系統會忽略標頭。

這個模組會讀取快取的回應,並傳回指定的資料範圍。

基本用法

只要將外掛程式新增至您要檢查範圍要求的策略,即可使用 Workbox Range 要求。

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(),
    ],
  });
);

進階用法

如果您想在外掛程式以外的地方使用這個邏輯,可以使用 createPartialResponse() 函式。

import {createPartialResponse} from 'workbox-range-requests';

createPartialResponse(request, cachedResponse);

詳情請參閱參考文件

類型

RangeRequestsPlugin

您可以利用範圍要求外掛程式,輕鬆使用快取回應執行包含「Range」標頭的要求。

實際做法是攔截 cachedResponseWillBeUsed 外掛程式回呼,並傳回適當的快取回應主體子集。

屬性

方法

createPartialResponse()

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

RequestResponse 物件做為輸入內容,這會傳回新 Response 的承諾。

如果原始 Response 已包含部分內容 (例如狀態為 206),則表示其已符合 Range: 要求,且將照原樣傳回。

參數

  • 申請。

    要求

    要求,應包含 Range: 標頭。

  • originalResponse

    回應

    回應。

傳回

  • Promise<Response>

    可以是 206 Partial Content 回應,將回應主體設為要求 Range: 標頭指定的內容片段;如果不符合 Range: 標頭的條件,則為 416 Range Not Satisfiable 回應。