运行时核心代码
该配置项用于放置所有核心功能函数,用法与 运行时函数依赖 相同。
该配置项与运行时函数依赖不同的是两者的定位,函数依赖中主要放置一些简单的工具函数,而运行时核心代码则放置一些核心代码。 默认情况下,核心代码也将被插入到函数依赖的后面,在一些特殊情况下可以避免一些声明顺序导致的问题。
请注意:除非您知道您在做什么,否则不要修改该分类下的内容!!!
handleEscape
类型 | 说明 |
---|---|
() => Promise<void> | 逃生门的实现 |
该项用于实现逃生门,默认实现如下:
// noinspection TypeScriptUnresolvedReference
async (): Promise<void> => {
const oldVersion = await readVersion()
if (ESCAPE && oldVersion && oldVersion.escape !== ESCAPE) {
await caches.delete(CACHE_NAME)
await postMessage('escape', null)
}
}
// 消除 IDE 报错
let readVersion: () => Promise<BrowserVersion | undefined>
let ESCAPE: number
let CACHE_NAME: string
handleUpdate
类型 | 说明 |
---|---|
(oldVersion: BrowserVersion | undefined, force?: boolean) => Promise<1 | -1 | 2 | undefined | null | void | string[]> | 增量更新功能 |
具体实现 参照源码 (opens in a new tab),该函数参数及返回值的解释如下:
oldVersion
: 更新前客户端的版本号。force
: 是否强制更新,为false
时如果两次更新的时间小于阈值,则不会进行更新。return
: 标记缓存是否更新,-1 表示新访客,1 标记仅更新版本号,2 表示更新了缓存,string[] 表示更新了部分缓存,否则表示没有进行任何更新。
handleFetchEvent
类型 | 说明 |
---|---|
(event: FetchEvent) => any | 处理网络请求事件 |