当前位置: 首页 > news >正文

在 UniApp 开发的网站中使图片能够缓存,不一直刷新

在 UniApp 开发的网站中,要使图片能够缓存,不一直刷新,可以考虑以下几种方法:

1. 使用适当的 HTTP 缓存头

确保你的服务器在响应图片时,返回合适的缓存控制 HTTP 头。以下是一些常用的 HTTP 头来控制缓存:

  • Cache-Control:
    你可以设置 Cache-Control 头为 max-age,指定资源在多久后过期。例如:

  • Cache-Control: public, max-age=31536000
  • 这表示资源可以被缓存,并在一年内有效。

  • Expires:
    指定一个具体的过期时间。例如:

  • Expires: Wed, 21 Oct 2025 07:28:00 GMT
    

    2. 通过版本号控制图片

    在你的图片 URL 中添加版本信息或时间戳,当你想更新图片时,改变这个版本号。这可以防止浏览器使用旧的缓存。例如:

    const imageUrl = `https://example.com/image.png?v=1.0`;
    

    每次更新图片,你只需更改版本号,如 ?v=2.0

    3. 使用 uni.request 进行手动缓存

    你可以使用 uni.request 请求图片,然后将图片以 Base64 的形式存储在 data 里,这样可以有效利用 Vue 的响应式特性。

  • uni.request({
        url: 'https://example.com/image.png',
        responseType: 'arraybuffer',
        success: (res) => {
            const base64Image = 'data:image/png;base64,' + uni.arrayBufferToBase64(res.data);
            this.imageSrc = base64Image; // 设置图片源为 Base64 格式
        }
    });
    

    4. 使用本地存储

    如果需要长期缓存图片,可以将图片数据存储到本地,比如使用 localStorage。你可以将图片的 Base64 编码存储到 localStorage 中并在需要时读取。

  • // 存储图片
    localStorage.setItem('cachedImage', base64Image);
    
    // 读取图片
    const cachedImage = localStorage.getItem('cachedImage');
    if (cachedImage) {
        this.imageSrc = cachedImage; // 使用缓存的图片
    }
    

    5. 合理设置 <img> 标签的属性

    尽量使用图片的 src 和 alt 属性,让浏览器知道这是一个图片资源,避免使用重定向或其他会导致缓存无效的方式。

    总结

    通过合理设置服务器的缓存头、使用版本号管理图片、手动请求并缓存图片数据、或者利用本地存储,你可以有效地让 UniApp 开发的网站中的图片缓存下来,而不至于每次都要刷新。

相关文章:

  • 委外订单不能删除提示领料未发量不能小于零
  • 【 PyQt】事件的触发:信号与槽
  • GitHub 项目版本管理与 Release 发布流程记录
  • HTTPS工作原理与安全机制详解(仅供参考)
  • 【RabbitMQ】事务
  • 查看端口被占用命令
  • FX-函数重载、重写(覆盖)、隐藏
  • Rust与Cargo版本关系(Rust版本、rustc、rustup)
  • 信息安全意识之安全组织架构图
  • ubuntu 24.04通过Flatpak安装迅雷
  • Dom详解
  • 02 | 快速部署 fastgo 项目
  • 在 Spring Boot 中实现基于 TraceId 的日志链路追踪
  • vue3-element-admin 前后端本地启动联调
  • IntelliJ IDEA v2024.3.4.1 Windows Java开发工具安装
  • 瑞芯微RK3576(2)-调试过程中遇到的问题
  • 如何用AI制作我们记忆中的乡村夜景
  • 获取URL字段的方法
  • 【反无人机目标检测数据集】空对空视觉检测微型无人机:深度学习的实验评估
  • C语言每日一练——day_4
  • 人大新闻教育70年丨16759门课程里的时代密码
  • 女高音吴睿睿“古词新唱”,穿着汉服唱唐诗宋词
  • 欧阳娜娜携家人回江西探亲,受聘为江西吉安文化旅游大使
  • 宝妈称宝宝在粽子中吃出带血创可贴,来伊份:已内部排查
  • 昆明一学校门外小吃摊占满人行道,城管:会在重点时段加强巡查处置
  • 巴基斯坦称成功拦截印度导弹,空军所有资产安全