我正在构建一个Appcelerator应用程序,它以这种方式检索普通用户的个人资料图像:
<ImageView id="profileImage" defaultImage="/images/default_profile.jpg"></ImageView>
控制器从服务器获取图像(每个用户的URL都是唯一的):
$.profileImage.image = "myserver.com/profile/1/image"
问题是我更新了配置文件图像(向服务器发送一个新配置文件),但内容永远不会刷新,因为它使用相同的URL。
例如: 1)myserver.com/profile/1/image是一个图像&#34; X&#34; 2)我发送了一个&#34; Y&#34;到服务器 3)myserver.com/profile/1/image获取图像&#34; X&#34;。因为它是由Appcelerator缓存的。但是,当然,我想得到&#34; Y&#34;。
那么可以在Appcelerator上删除缓存的图像吗?
设置一个get参数(例如&#34;?date = now())&#34;)这里不是答案,因为我必须在不同的视图中获取配置文件图像,我必须有这个缓存。
提前致谢。
吉尔
答案 0 :(得分:3)
Titanium中的远程图像始终根据其网址自动缓存。
因此,要完成任务,您有两种方法可以完成:
从服务器更改网址(我知道这很复杂,也不是很好的方法)。
或使用此功能
function clearCacheDirectory() {
try {
Ti.API.info("deleting cache...");
var temp = Ti.Filesystem.getApplicationCacheDirectory();
var cacheDir = Titanium.Filesystem.getFile(temp);
cacheDir.deleteDirectory(true);
} catch(exc) {
Ti.API.info("Cache error = " + exc);
}
}
由于
答案 1 :(得分:0)
正如Prashant Saini所说,对我而言唯一的作用就是更改url
每个图像视图的加载,添加随机存储到url
,例如:
var randfake = new Date();
$.userPhoto.image = /serverpath/images/?randfake='+randfake.getTime();