我想使用服务工作者来缓存一次性(过期)网址。
例如,假设我有一个使用过期网址的音频文件。每次请求时,URL都不同(尽管只有查询字符串不同):
http://example.com/foo.mp3?expires=123412341234&secret=abcabcabc
http://example.com/foo.mp3?expires=234523452345&secret=bcabcabca
http://example.com/foo.mp3?expires=345634563456&secret=cfewegfwe
我希望将其缓存为http://example.com/foo.mp3
,而不使用查询字符串,以便任何后续请求(即使使用新的查询字符串)都使用缓存。
我知道" ignoreSearch"服务工作者缓存中的选项,似乎已经为此用例精确添加到规范中。但是还没有在Chrome中实现ignoreSearch。在Chrome实现此功能之前,我是不是运气不好,还是有解决方法?
答案 0 :(得分:4)
找出我自己问题的答案。
解决方案是利用服务工作者为您提供多个缓存(您控制其名称)的事实。只需为每个文件创建一个单独的缓存,每个缓存只包含一个请求。我在http://www.holovaty.com/writing/service-worker-cache-names/
发布了代码和详细的文章