RuntimeCore

运行时核心代码

  该配置项用于放置所有核心功能函数,用法与 运行时函数依赖 相同。

  该配置项与运行时函数依赖不同的是两者的定位,函数依赖中主要放置一些简单的工具函数,而运行时核心代码则放置一些核心代码。 默认情况下,核心代码也将被插入到函数依赖的后面,在一些特殊情况下可以避免一些声明顺序导致的问题。

  请注意:除非您知道您在做什么,否则不要修改该分类下的内容!!!

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处理网络请求事件

  具体实现 参照源码 (opens in a new tab)