微信小程序 缓存 demo 优化小程序体验

2020-03-16写下这个 demo

我也刚刚开始学习小程序缓存

先放微信小程序官方文档


今天要实现什么效果呢? openid 作为小程序内用户唯一标识,重要性不言而喻

好了,直接上代码


// app.js

App({
  onLaunch: function() {
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        traceUser: true,
        env: 'xxxxx,
        // env: 'xxxxx',
      })
    }
    
	this.checkOpenid(); // 检查本地缓存是否有 openid, 没有就调用云函数获取 
	
  },

  globalData: {
    openid: ''
  },

	checkOpenid: function () {
	
		console.log('小李子,去检查缓存里是否有 openid');
		
		var openid = wx.getStorageSync('openid');
		
		if (openid === '') {
			console.log('启禀陛下,没有openid, 那还不速速取来');
			this.getOpenid(); // 调用云函数获 openid
		}else {
			console.log('启禀陛下, 有openid, 退下吧, 遮 ~');
			this.globalData.openid = openid;
		}
	},

	getOpenid() {
		var that = this;
		wx.cloud.callFunction({
			name: 'getOpenid',
			success: res => {
				console.log('陛下, openid 来了 ->', res.result.openid)
				
				var openid = res.result.openid;
				
				wx.setStorageSync('openid', openid)      // 将 openid 打入缓存大牢

				this.globalData.openid = openid;
				
			fail: res => {
				wx.showToast({
					title: '没有网络',
					icon: 'none',
					duration: 50000
				})
			}
		})
	},
})

用户第一次使用小程序 / 或者本地缓存被清理:
在这里插入图片描述
用户非第一次进入小程序(重新编译一下小程序)
在这里插入图片描述


哈哈哈,还可以把用户昵称,头像数据等放入缓存中。

请开动脑筋吧 。。。


有帮助别忘了点个赞,鼓励一下

有问题请评论



2021-06-05
最近看一些文档,文章
发现其实并不推荐把 opened 放到缓存,globalData中,还有 db 查询时最好不要返回 记录_id

可以试试 {openid},要使用数据库的自定义权限。
很不错。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值