我在documentation之后设置了一个预先缓存控制器。它似乎工作正常,仅适用于清理部分。
// Precache items
const precacheManifest =
[
{url: offlinePage, revision: '1.0.2'},
{url: HomePage, revision: '1.0.2'},
{url: './image/placeholder.png', revision: '1'},
{url: './manifest.json', revision: '1.0.1'},
];
const precacheController = new workbox.precaching.PrecacheController(precacheName);
precacheController.addToCacheList(precacheManifest);
安装事件工作正常,并在安装时插入缓存。
/**
* Install [Event]
*/
self.addEventListener('install', event => {
console.log('install event.');
event.waitUntil(precacheController.install());
});
问题是在activate事件中它在控制台中返回错误:
未捕获的TypeError:precacheController.cleanup不是函数。
/**
* Activate [Event]
*/
self.addEventListener('activate', event => {
console.log('activate event.');
event.waitUntil(precacheController.cleanup());
});
我的实施有什么问题?我正在使用Workbox 3.6.1
事实证明,precacheController.cleanup()是一个错误的调用方法。
正确的一个形成最后一个documentation:
/**
* Activate [Event]
*/
self.addEventListener('activate', event => {
console.log('activate event.');
event.waitUntil(precacheController.activate());
});