@clayder-ran/browser-cache
v0.0.1
Published
base localStorage or sessionStorage; cache data in browser;
Downloads
3
Readme
说明文档
- 存储内容在浏览器的localStorage或sessionStorage
同步模式
- 地址:
index.js > SessionStorage 或 LocalStorage
expire
单位是毫秒;value
是初始值;debug
开启时, 有一些打印;- 读取和设置数据时, 支持复合的键, 如
users[1].age
/* 存储实例 */
const store = new LocalStorage({
key: "aaa",
expire: 1000 * 60 * 1,
value: {
name: "默认名称",
items: [{}, {}, {
name: "默认user名称"
}]
},
debug: false,
});
/* 存储 */
store.set('person', '名称')
/* 读取 */
let name = store1.get('person')
/* 监听数据更新 */
store.listen("items[2].name", (curr, prev) => {
/* curr: 更新后的数据 */
/* prev: 更新前的数据 */
});
/* 手动禁用当前数据, 数据有更新后, 继续可用 */
store.disable()
/* 清除 */
store.clear()
异步模式
与同步模式的差异
- 地址:
index.js > AsyncStorage
value
属性接收Promise
或返回Promise的函数
, 返回值是存储的数据;expire
标识过期后, 自动用value属性获取新数据并缓存;- 一般不用set方法;
/* 存储实例 */
const store = new AsyncStorage({
key: "bbb",
expire: 1000 * 60 * 60 * 1,
value: () => {
return checkLogin().then(res => {
if (isDefObj(res)) {
const {
user_info: userInfo = {}
} = res || {};
return userInfo;
} else {
return null;
}
});
},
debug: false
});
/* 读取 */
store.get('users[2]').then(info => {
/* 第二个用户的信息: info */
})
/* 手动禁用当前数据, 数据有更新后, 继续可用 */
store.disable()
/* 清除 */
store.clear()
适配保险的缓存
- 地址:
insurance.js > CacheInsuranceStorage
- 更适用于保险数据的缓存;
- 基于
SessionStorage
的拓展; - 数据过期后, 从初始化数据中解析, 不会返回空;