欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解微信小程序缓存--缓存时效性

程序员文章站 2023-10-28 20:57:16
关于本地缓存 1.wx.setstorage(wx.setstoragesync)、wx.getstorage(wx.getstoragesync)、wx.clearst...

关于本地缓存

1.wx.setstorage(wx.setstoragesync)、wx.getstorage(wx.getstoragesync)、wx.clearstorage(wx.clearstoragesync)可以对本地缓存进行设置、获取和清理。本地缓存最大为10mb

2.localstorage 是永久存储

相应的api----------

wx.setstorage(object)

wx.getstorage(object)

wx.getstorageinfo(object)

wx.removestorage(object)

wx.setstoragesync(key,data)

wx.getstoragesync(key)

wx.getstorageinfosync

wx.clearstorage()

wx.clearstoragesync() ...

api的具体使用详见官方文档

注意:这里又一个问题就是这些缓存不清理会永久的缓存----------然而实际开发中,我们往往需要设置一些缓存的时效性

所以就需要对这些api进行封装(二次开发)直接上代码

设置缓存-----------put(key, val, time)        time为可选参数表示有效时间(单位:秒)

function put(key, val, time) {

wx.setstoragesync(key, val)

var seconds = parseint(time);

if (seconds > 0) {

var timestamp = date.parse(new date());

timestamp = timestamp / 1000 + seconds;

wx.setstoragesync(k + 'dtime', timestamp + "")

} else {

wx.removestoragesync(k + 'dtime')

}

}

读取缓存-----get(key, def)-------def为可选参数,表示无缓存数据时返回值(支持字符串、json、数组、boolean等等)

function get(key, def) {

var deadtime = parseint(wx.getstoragesync(key+ 'dtime'))

if (deadtime) {

if (parseint(deadtime) < date.parse(new date()) /1000) {

if (def) { return def; }else { return; }

}

}

var res = wx.getstoragesync(key);

if (res) {

return res;

} else {

return def;

}

}

以上所述是小编给大家介绍的微信小程序缓存时效性详解整合,希望对大家有所帮助