小程式設定快取時效封裝
阿新 • • 發佈:2022-06-06
import {
GET,
PUT
} from '../../utils/tools/session' //引入
PUT('test','我是測試,快取時效60秒',60) // 設定時效值
GET('test') // 沒值,就false; 有值就 有值 ''我是測試,快取時效60秒'
封裝的session.js
/* 1.設定快取-----------put(k, v, t) k為key,v為具體內容(支援字串、json、陣列、boolean等等), t為可選引數表示有效時間(單位:秒)如儲存k為123過期時間1秒, 則呼叫put('k', '123', 1)方法;若永久儲存呼叫put('k', '123') 永久儲存json:put('k', {"a":"1"}),陣列、boolean等同理。 2.讀取快取-----get(k, def)-------def(自定義讀取失敗的預設值) k為key,def為可選引數,表示無快取資料時返回值(支援字串、json、陣列、boolean等等) 如讀取k快取,則呼叫get('k');若想要無快取時,返回預設值則get('k','預設值'),支援各個資料型別。 3.remove(k)移除某個key clear()清空所有key */ let dtime = '_deadtime'; export 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) } }export 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; } } export function REMOVE(k) { wx.removeStorageSync(k); wx.removeStorageSync(k + dtime); } export function CLEAR() { wx.clearStorageSync(); }
拿走拿走, 不謝