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

每隔几分钟就从服务工作者中从缓存中删除特定文件?

如何解决每隔几分钟就从服务工作者中从缓存中删除特定文件?

我有一个服务人员,从我的Web服务器上获取和缓存文件。如果请求的资源可用,它将从本地缓存中提供服务。但是我看到服务工作者的缓存不尊重资源的缓存头,并且似乎永远保留它。

我需要每3分钟从缓存中清除我的主页/一次。还有每3小时一个URL /trust/me.PHP

我编写了这样的函数,每隔3分钟从我的缓存中删除主页:

f = function(x) {
  scale(x)[,1] * 2 + 0
}

task = tsk("iris")
pos = po("colapply",applicator = f,affect_columns = selector_name("Sepal.Width"))

train_out = pos$train(list(task))[[1]]$data(cols = task$feature_names)
round(colMeans(train_out),2)
round(apply(train_out,MARGIN = 2,FUN = sd),2)

pos$state

但这不起作用。最好的方法是什么?

解决方法

Service Worker缓存不会自动接受Cache-Control标头。相反,您需要创建自己的缓存失效逻辑。 有很多方法可以解决此问题,对于一个应用程序中的所有资产,也不是每个应用程序,没有一个答案是正确的。

您可以设置一个例程,以在用户积极使用您的应用程序时定期检查是否有更新。我通常使用HEAD请求检查更新,但有时也会使用缓存清单文件。几年前,我在我的书中写了有关后者的文章。

您可能还想设置一个在资产上启用TTL的时间。为此,我通常在IndexedDB中保留一个哈希表进行比较。

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