如何解决版本化服务人员
我的根JS应用程序中有一个version.json文件,其中包含...应用程序的当前版本。
{version: "2.1.0"}
我在多个地方使用它,我想在我的Service Worker中使用它来“版本化”缓存名称(这样,我只需要在整个应用程序的一个地方更改版本号)。像...
const PRECACHE = 'CACHE-' + version;
self.addEventListener('install',event => {
event.waitUntil(
caches.open(PRECACHE)
.then(cache => cache.addAll(PRECACHE_URLS).then(self.skipWaiting()))
);
});
但是我不知道如何在Service Worker(示例中的 version var)内部从文件中获取JSON数据。
我尝试了importScripts方法,但无法加载JSON文件(抛出错误,告诉我该文件必须返回文本/ javascript MIME类型)。
如何获取我的版本号?
编辑
我找到了令人满意的解决方案,但是我想知道是否还有其他方法可以实现相同的目标? 我在安装回调中添加了访存以获取我的版本,然后将其用于预缓存:
var PRECACHE = 'CACHE-';
self.addEventListener('install',event => {
event.waitUntil(
self.fetch('version.json').then(function(strVersion) {
return strVersion.json();
}).then(function (jsonVersion) {
PRECACHE += jsonVersion.version;
caches.open(PRECACHE)
.then(cache => cache.addAll(PRECACHE_URLS).then(self.skipWaiting()))
})
);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。