微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 gzip 压缩数据保存到 Service Worker 的缓存存储中

如何解决将 gzip 压缩数据保存到 Service Worker 的缓存存储中

我们正在尝试将一些 api 响应存储在 PWA 应用程序的缓存存储中。我们正在拦截 Service Worker 中的 fetch 请求并将响应存储到缓存中。但是我们未压缩的 api 大小有点大,我们希望保留缓存中的压缩(gzip)版本并在需要时解压缩。 有什么办法可以防止浏览器自动解压缩来自服务器的响应

解决方法

我不知道有什么方法可以自动执行此操作。大多数服务器只会在传入请求表明浏览器支持压缩时动态压缩它们的响应体,在这种情况下,浏览器会在您访问压缩字节之前自动解压响应体。

您可能有更好的运气,要么明确压缩服务器上的文件并下载并存储该压缩版本(即 fetch('asset.json.gz')),要么使用 CompressionStream(外部并未广泛支持)基于 Chromium 的浏览器)以在存储数据之前在客户端压缩数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。