CrossEnv

双期环境变量

  该配置项用于放置需要同时在浏览器环境和 NodeJs 环境中使用的环境变量,其中的内容会被写入到 sw 中。

  对于每一项配置 <KEY>: <value | function(): value><KEY> 是函数名(推荐使用大写下划线式命名),value 是环境变量的值。

  环境变量中应对仅包含非函数内容,当填写的配置项为函数时,swpp 会将函数返回的内容插入到环境变量中。

  配置项填写的函数的执行环境为 NodeJs,所以不要编写依赖浏览器环境的代码。

  例:

import {defineCrossEnv} from 'swpp-backends'
 
// 该代码将在 sw.js 中插入一系列常量,同时在编译期也可以动态读取
// const EXAMPLE = 'hello swpp'
// const FUN_EXAMPLE = 'fun hello swpp'
defineCrossEnv({
    EXAMPLE: 'hello swpp',
    FUN_EXAMPLE: function() {
        return 'fun ' + this.crossEnv.read('EXAMPLE')
    }
})

CACHE_NAME

类型说明默认值
string缓存库名称kmarBlogCache

  该配置项用于设置 swpp 存储缓存的缓存库的名称,可以更改为任意值,默认设置使用 kmarBlogCache 是历史遗留问题。

  请注意:网站部署到线上之后请勿修改该值!除非您知道自己在做什么,否则修改该值可能会造成 swpp 工作异常。

VERSION_PATH

类型说明默认值
string版本信息地址https://id.v3/

  该配置项用于设置版本信息存储的地址,因为 swpp 将版本信息封装为 Response 存储到 Cache 当中,所以需要一个模拟的链接来作为 key。此链接设置为一个网站不可能访问的地址即可,一定要以 / 结尾。

  注意:网站部署到线上后请勿修改该值!除非您知道自己在做什么,否则修改该值可能会造成 swpp 工作异常。

ESCAPE

类型说明默认值
number逃生门版本号0

  该配置项用于设置逃生门的版本号,用户的逃生门信息会存储到版本信息当中,当用户本地的逃生门与设置的逃生门版本号不同时就会触发逃生门。

  swpp 进行增量更新的原理是网站 DOM 端在启动时发送一个消息到 SW 端,SW 收到信息后开始进行更新操作。如果用户错误地修改了 DOM 端的代码,导致无法发送信息到 SW 端将导致 swpp 永远无法进行增量更新。此时如果对 DOM 的 JS 使用了无限期缓存,将会产生一个死循环:“修复 DOM JS 需要增量更新,但是增量更新又需要已有的 DOM JS 工作正常”。

  逃生门的作用就是为了解决上述问题,当用户由于修改 DOM JS 或其它操作产生了无法修复的问题时,可以通过逃生门强制清除用户本地缓存的所有数据。

  注意:只要用户的版本号和设置的版本号不相等就会触发逃生门。

INVALID_KEY

类型说明默认值
string缓存失效标识的 keyX-Swpp-Invalid

  swpp 使缓存失效的原理是将失效的缓存打上一个失效标记,读取缓存时检查是否存在失效标记,如果存在则尝试通过网络拉取最新的内容然后替换缓存,拉取失败则继续使用缓存的内容。

  该配置项用于修改 swpp 使用的 key,这个 key 是存储在响应头当中的,所以必须是一个合法的 HTTP 响应头名称。

  注意:网站部署到线上后请勿修改该值!除非您知道自己在做什么,否则修改该值可能会造成 swpp 工作异常。

STORAGE_TIMESTAMP

类型说明默认值
string缓存时间戳的 keyX-Swpp-Time

  swpp 实现定期缓存的原理是在响应头中存储一个时间戳,该配置项用于修改 swpp 使用的响应头的名称。

  注意:网站部署到线上后请勿修改该值!除非您知道自己在做什么,否则修改该值可能会造成 swpp 工作异常。

UPDATE_CD

类型说明默认值
number检查更新的最短时间间隔(毫秒)600000

  该项用于设置检查更新的最短时间间隔,当第二次更新与第一次更新时间之差小于该值时,将会取消第二次更新,避免用户频繁刷新时不停的进行更新。

UPDATE_JSON_URL

类型说明默认值
string版本文件所在 URL省略

  该项自动生成,仅用于向 sw 中插入数据,不要手动填写。