• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

校友会小程序开发笔记十三: 小程序前端缓存体系的设计与实现 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

存储

每个校友录小程序都可以有自己的本地缓存,可以通过 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();
}
 

 

项目代码GIT: https://github.com/ccliqi/CC-almni

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
整合微信小程序的Web API接口层的架构设计发布时间:2022-07-18
下一篇:
微信小程序之日期与时间插件发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap