提出要求時,您可以設定 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
外掛程式回呼,並傳回適當的快取回應主體子集。
屬性
-
建構函式
void
constructor
函式如下所示:() => {...}
-
returns
-
方法
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
)
以 Request
和 Response
物件做為輸入內容,這會傳回新 Response
的承諾。
如果原始 Response
已包含部分內容 (例如狀態為 206),則表示其已符合 Range:
要求,且將照原樣傳回。
參數
-
申請。
要求
要求,應包含 Range: 標頭。
-
originalResponse
回應
回應。
傳回
-
Promise<Response>
可以是
206 Partial Content
回應,將回應主體設為要求Range:
標頭指定的內容片段;如果不符合Range:
標頭的條件,則為416 Range Not Satisfiable
回應。