小程序图片image标签的src如何做缓存?
网友回复
我们需要自定义一个组件,实现根据src从本地缓冲中获取数据,没有缓冲就下载。
微信小程序提供了 wx.setStorage 和 wx.getStorage 来存储数据,以及 wx.saveFile 来保存文件。下面是一个适用于微信小程序的图片缓存组件:
<!-- components/cached-image/cached-image.wxml -->
<image
src="{{imageSrc}}"
mode="{{mode}}"
lazy-load="{{lazyLoad}}"
show-menu-by-longpress="{{showMenuByLongpress}}"
binderror="onImageError"
bindload="onImageLoad"
></image> // components/cached-image/cached-image.js
Component({
properties: {
src: {
type: String,
observer: function(newVal) {
this.loadImage(newVal);
}
},
mode: {
type: String,
value: 'aspectFill'
},
lazyLoad: {
type: Boolean,
value: false
},
showMenuByLongpress: {
type: Boolean,
value: false
}
},
data: {
imageSrc: ''
},
methods: {
async loadImage(url) {
if (!url) return;
try {
// 检查缓存
const cachedPath = await this.getCachedImage(url);
if (cachedPath) {
this.setData({ imageSrc: cachedPath });
return;
}
// 下载并缓存图片
const downloadRes = await this.downloadImage(url);
const savedFilePath = await this.saveFile(downloadRes.tempFilePath);
...点击查看剩余70%
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


