首页 > 其他分享 >uniapp设置缓存过期时间

uniapp设置缓存过期时间

时间:2024-07-17 20:18:50浏览次数:8  
标签:uniapp 存储 缓存 过期 myData uni 数据

在uni-app中,如果你想要实现数据的缓存并让这个缓存保留24小时,你可以使用uni.setStorageSync(同步存储)或uni.setStorage(异步存储)方法结合JavaScript的日期时间处理来实现。不过,需要注意的是,uni.setStorage系列API本身并不直接支持设置过期时间。因此,你需要自己管理过期时间。

以下是一种可能的实现方式:

  1. 存储数据时附带时间戳:当你存储数据时,同时存储一个时间戳(表示数据被存储的时间)。

  2. 读取数据时检查时间戳:每次从缓存中读取数据时,都先检查这个时间戳,判断数据是否已过期。

  3. 如果数据过期,则清除并重新获取:如果检查发现数据已过期,则使用uni.removeStorageSync(同步删除)或uni.removeStorage(异步删除)清除旧的缓存数据,并根据需要重新获取数据并存储。

下面是一个简单的示例代码:

javascript复制代码
  // 假设你要存储的数据是一个字符串 "hello"
  const data = "hello";
   
  // 当前时间的时间戳(秒)
  const currentTime = Math.floor(Date.now() / 1000);
   
  // 设置缓存,假设key为'myData',同时存储数据和时间戳
  // 这里以uni.setStorageSync为例
  uni.setStorageSync('myData_data', data);
  uni.setStorageSync('myData_timestamp', currentTime);
   
  // 假设这是获取缓存数据的函数
   getCachedData() {
  let data = uni.getStorageSync('myData_data');
  let timestamp = uni.getStorageSync('myData_timestamp');
   
  // 判断数据是否已过期(这里假设过期时间为24小时)
  if (timestamp && (currentTime - timestamp < 24 * 60 * 60)) {
  // 数据未过期,直接返回数据
  return data;
  } else {
  // 数据已过期或不存在,进行相应处理(比如重新获取数据)
  // 这里只是简单地返回null作为示例
  uni.removeStorageSync('myData_data');
  uni.removeStorageSync('myData_timestamp');
  return null; // 或重新获取数据并存储
  }
  }
   
  // 使用示例
  let cachedData = getCachedData();
  if (cachedData) {
  console.log('从缓存中获取的数据:', cachedData);
  } else {
  console.log('缓存数据已过期或不存在,需要重新获取');
  // 在这里实现重新获取数据的逻辑
  }

请注意,这个示例中我们分别存储了数据和它的时间戳,并在获取数据时检查时间戳以确定数据是否过期。如果数据已过期,我们就从缓存中删除这些数据(尽管在实际应用中,如果数据重新获取后立即存储,这一步可能是可选的),并返回null或重新获取数据。

这种方法适用于任何需要设置过期时间的缓存场景,而不仅仅是uni-app小程序。

标签:uniapp,存储,缓存,过期,myData,uni,数据
From: https://www.cnblogs.com/youantianqin/p/18308210

相关文章

  • uniapp对接人脸识别,人脸核身,双录 ,阿里云,以及腾讯云对接方法。
    腾讯云uniapp接入】第一步,申请人脸核身服务:https://cloud.tencent.com/apply/p/shcgszvmppc第二步,申请业务流程WBAppid:-获取WBappid方法指引:https://cloud.tencent.com/document/product/1007/49634-申请链接:https://console.cloud.tencent.com/faceid/access第三步,uni插件接入......
  • redis学习-11(缓存)
    缓存的收益和成本分析收益:1)加速读写2)降低后端负载成本:1)数据不一致性2)代码维护成本3)运维成本使用场景:1)开销大的复杂计算2)加速请求响应缓存更新策略的选择和使用场景LRU/LFU/FIFO算法剔除:当缓存使用量大于预设的最大值时候,对现有数据进行剔除,一致性最差,维护成本低超时剔......
  • uniapp [全端兼容] - 详细实现用户电子签名 “逐字校验“ 将姓名按字拆开分别手写签署
    前言如果您需要“合同专用”签字板及展示,请访问这篇文章。在uni-app全平台兼容(H5网页网站、支付宝/微信小程序、安卓App、苹果App、nvue)项目开发中,详解完成用户进行电子签名时,将其姓名进行拆分为独立的汉字,并由系统自动生成渲染对应的单个汉字文字的签名和验证笔画......
  • 数组是缓存对齐的特征
    Anarrayiscache-aligned:Thesizeofeacharrayelementmatchesthesizeofthecacheblock.Thestartingaddressofthearrayisamultipleofthecacheblocksize.Let'selaborateonthesepoints:ArrayElementSizeMatchesCacheBlockSizeI......
  • Spark缓存优化:清除全部缓存
    Spark算子是分为行动子算子和转换算子的,只有遇到行动算子,计算任务才会生成一个Job任务,当算子行动算子多起来,并且交织复杂的时候,Spark去追溯数据血缘就会比较耗时了,通常我们都会直接通过persist算子存储中间的计算结果,减少数据的重复计算。//存储中间计算结果,避免Spark重复计算v......
  • 详解Spring循环依赖,以及spring如何通过三级缓存解决循环依赖问题
     首先为了方便理解后面的图解,首先要了解spring的bean的生命周期,下图是sping的bean的生命周期流程图。图解:就是在初始化实例化A时,发现A里面依赖了B,所有看B是否在容器中存在,结果B不存在又去实例化B,B中又依赖与A,但是也不存在,就这样陷入一个死循环就是循环依赖。图解:实......
  • 快速上手 Caffeine:Java 缓存库初学者指南
    一、背景简介:Caffeine是一个高性能的Java缓存库,旨在为现代应用程序提供快速、高效的缓存解决方案。它由GoogleGuavaCache的创始人之一开发,具备基于时间的过期、基于大小的回收、异步加载、统计信息等多种特性。Caffeine的性能有多么强大呢?以下是官方给出的基准测试......
  • 基于SpringBoot+Uniapp的微信阅读小程序系统设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 使用Java和Redis构建高性能的缓存系统
    使用Java和Redis构建高性能的缓存系统大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代应用程序中,高性能的缓存系统对于提升系统性能和响应速度至关重要。本文将详细介绍如何利用Java和Redis构建一个高效的缓存系统,以及实现过程中的关键技术和注意事......
  • uniApp 接入微信短剧播放器
    短剧播放器是微信官方为微短剧类目小程序提供的播放器插件。开发者可引入短剧播放器插件后,基于自身需求快速进行开发上线。 小程序中使用短剧播放器需要以下几个条件小程序已有短剧类目(文娱->微短剧),并且将该类目设为主类目小程序引入短剧播放器插件   微信官方短剧......