uniapp 详细封装缓存定时过期方法,详细使用过程

news2024/11/19 8:41:49

 最近在开发一个uniapp的项目,中间我们需要给缓存定时,为了解决这个问题,封装了一个方法用来解决这个问题,当时遇到这个问题是因为在项目中要给阿里的OSS上传文件,上传之间先要向服务端请求获取授权,授权我们当时设定了30分钟过期,所以就需要给缓存定时过期了

后来发现存储的数据并不是简单的字符串,然后又把JSON处理成了字符串,一下是源代码和使用过程

 

<script>

// 缓存函数,设置或获取缓存值,带有过期时间戳
// key: 缓存的键名,必填
// value: 缓存的值,选填,如果为空则表示获取缓存,如果不为空则表示设置缓存
// seconds: 缓存的过期时间,单位为秒,选填,默认为28天
function cache(key, value, seconds) {
  // 获取当前时间戳,单位为秒
  const timestamp = Date.parse(new Date()) / 1000;
  console.log(`${timestamp}===${key}`);
  // 如果key为空,直接返回
  if (!key) {
    console.log("key不能空");
    return;
  }
  // 如果value为空,表示获取缓存
  if (value === null) {
    // 获取缓存值,并按照"|"分割成数组
    const val = uni.getStorageSync(key);
    const tmp = val.split("|");
    // 如果数组的第二个元素不存在或者小于等于当前时间戳,表示缓存已过期,删除缓存并返回空字符串
    if (!tmp[1] || timestamp >= tmp[1]) {
      console.log("key已失效");
      uni.removeStorageSync(key);
      return "";
    }
    // 否则表示缓存未过期,返回数组的第一个元素,即缓存值
    else {
      console.log("key未失效");
      return tmp[0];
    }
  }
  // 如果value不为空,表示设置缓存
  else {
    // 如果seconds为空,则使用默认值28天,否则使用传入的值
    const expire = seconds ? timestamp + seconds : timestamp + 3600 * 24 * 28;
    // 将缓存值和过期时间戳用"|"连接成一个字符串,并存入缓存
    value = `${value}|${expire}`;
    uni.setStorageSync(key, value);
  }
}


</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3、动手学深度学习——多层感知机:多层感知机的实现(从零实现+内置函数实现)

1、多层感知机基础知识 1. 简述 加入隐藏层和激活函数&#xff0c;可以将线性模型变成非线性模型&#xff0c;引入了非线性拟合能力。 我们通过在网络中加入一个或多个隐藏层来克服线性模型的限制&#xff0c;使其能处理更普遍的函数关系类型。要做到这一点&#xff0c;最简…

密码学—DES加密算法

文章目录 DES流程DES细节生成密钥DES加密E盒扩展S盒替换P盒置换 DES流程 因为DES是对比特流进行加密的&#xff0c;所以信息在加密之前先转为二进制比特流 1&#xff1a;生成16把密钥 只取给出的密钥比特流中64位&#xff0c;不够64则补0对64位进行PC1表置换&#xff0c;64位进…

vscode搭建汇编环境

汇编语言环境的配置 教程 视频教程 https://www.nasm.us/pub/nasm/releasebuilds/?CM;OD 下载zip压缩包&#xff0c;去目录去解压&#xff0c;然后把根目录配置到环境的变量 vscode搭建汇编环境 插件 assembly Hex editor 这个是用来显示.exe文件的十六字进制的显示 下载…

基于 DTS 同步 MySQL 全增量数据至 CKafka,构建实时数仓的最佳实践

背景介绍 随着 IT 技术与大数据的不断发展&#xff0c;越来越多的企业开始意识到数据的价值&#xff0c;通过大数据分析&#xff0c;可以帮助企业更深入地了解用户需求、更好地洞察市场趋势。目前大数据分析在每个业务运营中都发挥着重要作用&#xff0c;成为企业提升市场竞争…

【最短路dij】牛客练习赛112D qsgg and Subway

D-qsgg and Subway_牛客练习赛112 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 感觉这类题难的地方就是更新v的那个值比较难求 思路&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn1e610; const int mxe1e610; co…

G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析 | 京东云技术团队

1. 背景 我方有一应用&#xff0c;偶尔会出现GC时间过长&#xff08;间隔约4小时&#xff09;&#xff0c;导致性能波动的问题(接口最长需要耗时3秒以上)。经排查为G1垃圾回收器参数配置不当 叠加 MySQL 链接超过闲置时间回收&#xff0c;产生大量的虚引用&#xff0c;导致G1在…

wordpress里的日主题ripro登录一直返回0,或者循环登录

如以下网站&#xff1a;爱豆坤坤博客_最爱蔡徐坤&#xff0c;专注活动&#xff0c;软件&#xff0c;资源&#xff0c;教程分享!。点击登录后一直提示登录。或者返回0.具体原因是因为插件乱用导致。需要查看文件wp-load.php 删除最后的include("/www/wwwroot/25qi.cn/wp-co…

c语言通讯录——文件版本(带详细文字解释)

1.定义一个用于存储一个人的信息的结构体 typedef struct PeoInfo {char name[NAME_MAX];int age;char sex[SEX_MAX];char addr[ADDR_MAX];char tele[TELE_MAX]; }PeoInfo;定义了一个名为 “PeoInfo” 的结构体&#xff08;struct&#xff09;类型&#xff0c;用于存储有关一个…

想知道AI智能绘画是什么?三分钟告诉你如何生成ai绘画

你是否曾经幻想过让电脑也能像大师一样创作出美丽的艺术作品&#xff1f;AI智能绘画就是这样一门神奇的技术&#xff0c;它将人工智能与绘画艺术相结合&#xff0c;为我们呈现了一场令人惊叹的创造魔术。那么到底AI智能绘画是什么呢&#xff1f;让我们一起揭开它的神秘面纱&…

低代码平台其中两大优势

低代码开发平台本质上是一种的软件开发工具&#xff0c;通过把常用功能控件进行组件化封装、将常用业务场景进行模板化&#xff0c;通过可视化模式进行进行开发。相比传统编码开发模式具有开发效率高、开发成本更低的明显优势。 低代码开发是如何提高开发效率和降低成本的呢&am…

Navicat连接oracle

1、官网下载oracle instant client客户端&#xff08;版本自选&#xff09; Oracle Instant Client Downloads 下载后解压 2、navicat配置 在工具-> 选项 -> OCI 或环境中&#xff0c;选择在步骤 1 解压目录的 oci.dll 3、重新启动 Navicat 4、配置oracle连接即可 参考…

Excel 经常复制粘贴失效,复制表格粘贴不了无反应,怎么解决?

环境&#xff1a; Win10 专业版 Excel2021 L盾加密客户端 wps2021 问题描述&#xff1a; 之前正常的&#xff0c;excel2016和2021 经常复制表格粘贴不了无反应每隔10几分钟随机出现&#xff0c;在表格外面复制粘贴没有问题&#xff0c;把外面东西&#xff0c;粘贴进表格里…

阿里一年香~

一年香照片&纪念品 一年香感悟 身份转变 从学生身份变为社会打工人&#xff0c;深知父母挣钱的不易与艰辛&#xff0c;也懂得了朝十晚九的生活。不要焦虑&#xff0c;开心过好每一天。 沉稳与笨拙 从原来的120斤到现在的140斤&#xff0c;真是又沉又稳。现在周六上午打…

Android JNI 学习实践

目录介绍 01.学习JNI开发流程 1.1 JNI开发概念1.2 JNI和NDK的关系1.3 JNI实践步骤1.4 NDK使用场景1.5 学习路线说明 02.NDK架构分层 2.1 NDK分层构建层2.2 NDK分层Java层2.3 Native层 03.JNI基础语法 3.1 JNI三种引用3.2 JNI异常处理3.3 C和C互相调用3.4 JNI核心原理3.5 注册N…

应用自动开启辅助(无障碍)功能并使用辅助(无障碍)功能

一.背景 由于最近的项目需要开启无障碍功能然后实现对应的功能需求,但是由于需求是需要安装后就开启辅助功能,不要在繁琐的在设置中开启辅助功能,所以需要如何在应用中开启辅助功能。 二.前提条件 将普通应用转换成系统应用,然后将系统的framework.jar包放到应用中并且可以…

【知识总结】邀请功能的实现分析

邀请功能 功能分析 场景&#xff1a;项目中出现用户邀请其他用户加入群组的功能 需求&#xff1a;用户点击生成邀请链接可以生成一个url&#xff0c;将这个url分享给其他用户&#xff0c;其他用户点击后对用户登录状态进行校验&#xff0c;校验通过即可加入群组&#xff0c;…

QLORA:量化LLMA的有效微调

文章目录 摘要1、简介2、背景3、QLORA微调4、QLoRA vs.标准微调5、用QLoRA推动聊天机器人达到最高水平5.1、实验设置5.2、评价5.3、Guanaco:在OASST1上使用QLORA训练的最先进的聊天机器人 6、定性分析6.2、注意事项 7、相关工作8、限制与讨论9、更广泛的影响致谢QLoRA与标准微调…

css实现毛玻璃磨砂效果

预览效果 实现原理&#xff1a; backdrop-filter CSS 属性可以让你为一个元素后面区域添加图形效果&#xff08;如模糊或颜色偏移&#xff09;。 因为它适用于元素背后的所有元素&#xff0c;为了看到效果&#xff0c;必须使元素或其背景至少部分透明。 完整代码&#xff1a; …

3D创作应用《Masterpiece X》上线Quest平台

6月25日青亭网报道&#xff0c;《Masterpiece X》是一款3D创作类应用&#xff0c;主要特点是通过面向普通用户&#xff0c;提供更简单易用的创作工具。目前已经上线Quest 2和Quest Pro&#xff0c;重要的是这是一款免费工具。 该作来自于Masterpiece Studio&#xff0c;开发历经…

百度脑图切换账号

当然是清除cookie了&#xff01; 方法 在百度脑图页面右键&#xff0c;点检查 点小箭头&#xff0c;找到应用 找到cookie下的naotu.baidu.com&#xff0c;右键清除&#xff0c;然后刷新页面 重新登录&#xff0c;就有了