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
按赞同
/
按时间
平方厘米

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

代码示例:

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
相关问题
HarmonyOS Imageknife 动图展示异常
354浏览 • 1回复 待解决
HarmonyOS imageknife2.x如何切imageknife3.x
458浏览 • 1回复 待解决
HarmonyOS图片加载框架ImageKnife
411浏览 • 1回复 待解决
ImageKnife无法加载网络jpeg图
6588浏览 • 1回复 待解决
ImageKnife 图片库相关问题
1022浏览 • 1回复 待解决
如何获取缓存数据和清理缓存
389浏览 • 1回复 待解决
本地缓存和分布式缓存有什么不同?
2668浏览 • 1回复 待解决