服务工作者:缓存一次性URL请求而不忽略Search

时间:2015-12-26 18:14:43

标签: javascript service-worker

我想使用服务工作者来缓存一次性(过期)网址。

例如,假设我有一个使用过期网址的音频文件。每次请求时,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实现此功能之前,我是不是运气不好,还是有解决方法?

1 个答案:

答案 0 :(得分:4)

找出我自己问题的答案。

解决方案是利用服务工作者为您提供多个缓存(您控制其名称)的事实。只需为每个文件创建一个单独的缓存,每个缓存只包含一个请求。我在http://www.holovaty.com/writing/service-worker-cache-names/

发布了代码和详细的文章