存储

每个校友录小程序都能够有本人的本地缓存,能够通过 wx.setStorage/wx.setStorageSync、wx.getStorage/wx.getStorageSync、wx.clearStorage/wx.clearStorageSync,wx.removeStorage/wx.removeStorageSync 对本地校友录小程序缓存进行读写和清理。

校友会小程序隔离策略

同一个微信校友录小程序用户,同一个校友录小程序 storage 下限为 10MB。storage 以校友录用户维度隔离,同一台设施上,A 用户无奈读取到 B 用户的数据;不同小程序之间也无奈相互读写数据。

插件隔离策略

同一校友录小程序应用不同插件:不同插件之间,插件与小程序之间 storage 不互通。
不同校友录小程序应用同一插件:同一插件 storage 不互通。

清理策略

本地缓存的清理机会跟代码包一样,只有在校友录小程序代码包被清理的时候本地缓存才会被清理。

校友会小程序缓存办法的类封装

微信缓存二次封装,有设置时效性的封装

/** * 写校友录小程序缓存 * k 键key * v 值value * t 秒(无效工夫) */function set(k, v, t = 86400 * 30) {    if (!k) return null;    wx.setStorageSync(k, v);    let seconds = parseInt(t);    if (seconds > 0) {        let newtime = Date.parse(new Date());        newtime = newtime / 1000 + seconds;        wx.setStorageSync(k + TIME_SUFFIX, newtime + "");    } else {        wx.removeStorageSync(k + TIME_SUFFIX);    }}
/** * 获取校友录小程序缓存 * k 键key * def 默认值 */function get(k, def = null) {    if (!k) return null;    let deadtime = parseInt(wx.getStorageSync(k + TIME_SUFFIX));     if (deadtime) {        if (parseInt(deadtime) < Date.parse(new Date()) / 1000) {            wx.removeStorageSync(k);             wx.removeStorageSync(k + TIME_SUFFIX);             return def;        }    }    let res = wx.getStorageSync(k);    if (res) {        return res;    } else {        return def;    }}
/** * 删除校友录小程序缓存* k键值 */function remove(k) {    if (!k) return null;        wx.removeStorageSync(k);    wx.removeStorageSync(k + TIME_SUFFIX);}
/** * 革除所有校友录小程序key */function clear() {    wx.clearStorageSync();}

https://gitee.com/minzonetech...