在开发小程序中,经常会遇到登陆之后设置一定时间的缓存,但是官方api(https://developers.weixin.qq.com/miniprogram/dev/api/data.html#wxsetstoragesynckeydata)当中并没有设置失效时间的属性,因此需要对api进行二次封装,封装代码如下:
-
var dtime =
'_deadtime';
-
function put(k, v, t) {
-
wx.setStorageSync(k, v)
-
var seconds =
parseInt(t);
-
if (seconds >
0) {
-
var timestamp =
Date.parse(
new
Date());
-
timestamp = timestamp /
1000 + seconds;
-
wx.setStorageSync(k + dtime, timestamp +
"")
-
}
else {
-
wx.removeStorageSync(k + dtime)
-
}
-
}
-
-
function get(k, def) {
-
var deadtime =
parseInt(wx.getStorageSync(k + dtime))
-
if (deadtime) {
-
if (
parseInt(deadtime) <
Date.parse(
new
Date()) /
1000) {
-
if (def) {
return def; }
else {
return; }
-
}
-
}
-
var res = wx.getStorageSync(k);
-
if (res) {
-
return res;
-
}
else {
-
return def;
-
}
-
}
-
-
function remove(k) {
-
wx.removeStorageSync(k);
-
wx.removeStorageSync(k + dtime);
-
}
-
-
function clear() {
-
wx.clearStorageSync();
-
}
-
-
module.exports = {
-
put: put,
-
get: get,
-
remove: remove,
-
clear: clear,
-
}
使用方法:在需要使用的js中引入改js文件(比如文件名为:cache.js),var util = require('../../utils/cache.js');
设置缓存: util.put('key','value',20) 表示设置缓存失效时间为20秒;
获取缓存:util.get('key')
清除缓存:util.remove('key')
清除所有缓存:util.clear()
在开发小程序中,经常会遇到登陆之后设置一定时间的缓存,但是官方api(https://developers.weixin.qq.com/miniprogram/dev/api/data.html#wxsetstoragesynckeydata)当中并没有设置失效时间的属性,因此需要对api进行二次封装,封装代码如下: