发出请求时,可以设置 range 标头来告知
让服务器仅返回完整请求的一部分。这个
对于某些文件(如视频文件)非常有用
可能会改变视频的播放位置
此模块有何用途?
在某些情况下,您可能需要提供缓存的文件
但浏览器设置了 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函数如下所示:() => {...}
方法
createPartialResponse()
workbox-range-requests.createPartialResponse(
request: Request,
originalResponse: Response,
): Promise<Response>
若将 Request 和 Response 对象作为输入,此函数将返回一个
promise 来创建新的 Response。
如果原始 Response 已包含部分内容(即其状态为 206),则系统会假定它已满足 Range: 要求,并将其原样返回。
参数
- 
    request请求 请求,其中应包含一个 Range: 标头。 
- 
    originalResponse响应 响应。 
返回
- 
            承诺<响应> 206 Partial Content响应,其中包含 响应正文,设置为请求Range:标头或416 Range Not Satisfiable响应(如果 不符合“Range:”标头的条件。