ImageKnife控件会有缓存读取失败

将头像地址分成了两份,一份是beseUrl地址,就是不包含参数的地址“https://tva3.sinaimg.cn/crop.0.0.720.720.180/005MvQ2yjw8ezmmla6zgqj30k00k0gn5.jpg”和paramsString参数部分

“?KID=imgbed,tva&Expires=1707058039&ssig=9UIQJi8uzv”在imageknife中除了传入了loadSrc(beseUrl)的图片地址,还传入了paramsString,如果没有命中缓存,就会以beseUrl+paramsString的完整地址的形式去服务端读取图片。

HarmonyOS
2024-05-12 22:44:57
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
guo_jerry

删除整个缓存目录会导致后续的缓存和读取出问题,并不建议这样直接暴力删除,可以尝试只删目录里面的文件,把目录留着

代码示例:

let cacheDir = getContext().cacheDir + “/diskLruCache” 
fs.listFile(cacheDir).then((filenames: Array<string>) => { 
  for (let i = 0; i < filenames.length; i++) { 
    console.log(“TEST== filenames[” + i + "]: " + filenames[i]) 
 
    let filePath = cacheDir + “/” + filenames[i]; 
    fs.unlink(filePath).then(() => { 
      console.log("TEST== 删除文件: " + filePath) 
    }).catch((err: BusinessError) => { 
      console.error("TEST== remove file failed with error message: " + err.message + ", error code: " + err.code); 
    }); 
 
    console.log("TEST== cacheDir: " + cacheDir) 
    console.log(“TEST== 缓存已清除”) 
    this.isCacheClear = false; 
 
  } 
}).catch((err: BusinessError) => { 
  console.error("TEST== list file failed with error message: " + err.message + ", error code: " + err.code); 
});
分享
微博
QQ
微信
回复
2024-05-13 15:51:17
相关问题
ImageKnife 图片库相关问题
599浏览 • 1回复 待解决
ImageKnife无法加载网络jpeg图
636浏览 • 1回复 待解决
本地缓存和分布式缓存有什么不同?
1552浏览 • 1回复 待解决
用file api清理缓存目录
433浏览 • 1回复 待解决
鸿蒙-有没有缓存工具类
4724浏览 • 1回复 待解决
「多态控件」的效果样式确认
713浏览 • 1回复 待解决
Image组件缓存清空问题
2836浏览 待解决
如何通过命令号清除应用缓存
800浏览 • 1回复 待解决
如何用redis/memcache做缓存层?
1268浏览 • 1回复 待解决
ArkTS如何读取本地json?
5408浏览 • 1回复 待解决
如何根据uri读取文件?
1897浏览 • 1回复 待解决
ATSUI可以调用JSUI的控件吗?
1246浏览 • 0回复 待解决
鸿蒙中有没有载入框控件?
4310浏览 • 1回复 待解决
Image缓存配置执行时机
399浏览 • 1回复 待解决
Image组件是否有缓存机制
508浏览 • 1回复 待解决