我有以下情况:我正在开发一个具有以下属性的小型web应用程序:
第一点很好,服务工作者正是我所需要的东西,因为他们会下载并缓存我的应用程序逻辑,但是我很难弄清楚,我是否应该或者甚至可以使用服务工作者来满足最后的需求。据我所知,服务工作者具有以下属性:服务工作者的结构(包括什么)是在应用程序构建步骤中确定的,不能在运行时更改或修改,即使是这样,我也不能为不同的用户生成不同的服务工作者,对吗?
还有别的办法吗?
发布于 2019-01-31 21:31:15
除了web应用程序的HTML/JS/CSS之外,您还可以使用Cache Storage为用户缓存其他内容。缓存存储API在全局对象上作为caches公开给客户端网页和服务工作人员内部。
例如,您可以在web应用程序的代码中进行以下调用:
async function cacheAdditionalUrls(urls) {
const cache = await caches.open('my-custom-cache');
await cache.addAll(url);
// At this point, 'my-custom-cache' will contain all of the urls.
// You can read from this cache from the service worker.
}在您的服务工作者中,您可以从'my-custom-cache'中读取以满足匹配请求。您提到您使用的是vue-cli的PWA插件,它构建在工作箱之上。要使用工作框中的缓存数据,可以在工作箱配置中实现规则,如下所示:
pwa: {
workboxOptions: {
// Add in other options as needed.
runtimeCaching: [{
urlPattern: new RegExp('path/prefix/for/images'),
handler: 'cacheFirst',
options: {
cacheName: 'my-custom-cache'
}
}]
}
}https://stackoverflow.com/questions/54461346
复制相似问题