如何解决如何使用 workbox-build generateSW 向缓存添加过期时间?
我使用 workBox generateSW 方法来生成 service worker,这是我使用的配置:
onMouseDown(evt) {
this.owner.toolActionBegin()
this.isMouseDown = true
this.startPt = this.canvas.getPointer(evt.e);
this.object = new fabric.IText("New text",{
left: this.startPt.x,top: this.startPt.y,fill: this.owner.textColor,selectable: true,fontFamily: 'arial',fontSize: this.owner.fontSize,editable: true,selectionBackgroundColor: "rgb(255,255,255)",perPixelTargetFind: false,hasBorders: true,hasControls: true,});
this.object.setControlsVisibility({
tl: true,tr: true,br: true,bl: true,ml: false,mt: false,mr: false,mb: false,mtr: true
})
this.canvas.add(this.object)
this.canvas.on("mouse:up",this.onmouseup);
this.canvas.on("editing:exited",this.onExitEditing);
}
我在文档中找不到删除旧缓存的过期时间,那么我如何在一段时间后使用 workBox-build generateSW 清理缓存?
解决方法
maxAgeSeconds
并不意味着在一段时间后自动清理旧条目。来自documentation:
插件会在每次请求或缓存更新后检查并删除条目。
需要注意的一点:
- 因为打开IndexedDB很慢,所以在请求被使用后才会过期。这意味着过期的请求可以使用一次,但之后就会过期。
- 为了缓解这种情况,插件将检查缓存响应的“日期”标头,如果存在并且可以解析日期,它将基于此过期,因为它不需要 IndexedDB 查找。立>
所以 maxAgeSeconds
是控制缓存请求失效前的时间的选项,旧条目的删除由请求触发。
要在任何请求后检查和删除旧条目,请使用 maxEntries
option:
在使用缓存响应或将新请求添加到缓存后,插件将查看配置的缓存并确保缓存条目的数量不超过限制。如果是这样,最旧的条目将被删除。
如果您仍然需要在任何请求后根据时间而不是条目数进行清理,您需要基于 ExpirationPlugin
创建自己的插件并更好地使用注入清单模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。