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
9天前
浏览
收藏 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
微信
回复
8天前
相关问题
ImageKnife 图片库相关问题
159浏览 • 1回复 待解决
ImageKnife无法加载网络jpeg图
127浏览 • 1回复 待解决
本地缓存和分布式缓存有什么不同?
1028浏览 • 1回复 待解决
鸿蒙-有没有缓存工具类
4184浏览 • 1回复 待解决
用file api清理缓存目录
8浏览 • 0回复 待解决
Image组件缓存清空问题
2260浏览 待解决
如何通过命令号清除应用缓存
141浏览 • 1回复 待解决
如何用redis/memcache做缓存层?
669浏览 • 1回复 待解决
「多态控件」的效果样式确认
152浏览 • 1回复 待解决
mac系统,ohpm下载内容的缓存地址
164浏览 • 1回复 待解决
如何根据uri读取文件?
1282浏览 • 1回复 待解决
ArkTS如何读取本地json?
4692浏览 • 1回复 待解决
为什么禁止缓存napi_env
114浏览 • 1回复 待解决
鸿蒙中有没有载入框控件?
3817浏览 • 1回复 待解决
ATSUI可以调用JSUI的控件吗?
762浏览 • 0回复 待解决