+
93
-

回答

在小程序中,图片组件本身不直接支持全局缓存,但可以结合使用 wx.getStorage 和 wx.setStorage 来实现。以下是示例代码:

// index.js
Page({
  data: {
    imageUrl: ''
  },

  onLoad: function () {
    const that = this;
    wx.getStorage({
      key: 'cachedImage',
      success: function (res) {
        // 如果缓存存在
        that.setData({ imageUrl: res.data });
      },
      fail: function () {
        // 如果缓存不存在,下载并缓存
        const url = 'https://example.com/image.jpg'; // 替换为实际图片URL
        wx.downloadFile({
          url: url,
          success: function (res) {
            if (res.statusCode === 200) {
              const tempFilePath = res.tempFilePath;
              that.setData({ imageUrl: tempFilePath });
              // 缓存图片
              wx.setStorage({
                key: 'cachedImage',
                data: tempFilePath,
              });
            }
          }
        });
      }
    });
  }
});

然后在 WXML 中使用图片组件:

<!-- index.wxml -->
<image src="{{imageUrl}}" mode="aspectFit" />

这样,当页面加载时,会先检查缓存,再决定是使用缓存的图片还是下载新图片。需要进一步的帮助吗?

网友回复

我知道答案,我要回答