我有一个phonegap Android应用程序,它使用FileTransfer
元素从服务器下载图像。我将图片保存在root.fullPath + "/namefile.jpg"
中。
然后,如果应用程序在线,我保存图像,然后将图像的src
属性设置为文件系统中图像的源,如果它处于脱机状态,我将直接从文件系统获取图像。 / p>
问题出在这种情况;当图像在服务器中发生变化时,我再次下载它,但它仍然显示旧图像。然后,如果我关闭应用程序并再次打开它,则会加载正确的新更改图像。
这是代码
ft.download(
uri,
fs.root.fullPath+"/filename",
function(entry) {
alert("download complete: " + entry.fullPath);
urlNuevo=entry.fullPath;
$("#my_image").attr("src",entry.fullPath);//here is the problem it still shows the previous version of the image
},
function(error) {
alert("download error source " + error.source);
alert("download error target " + error.target);
alert("upload error code" + error.code);
urlNuevo= fs.root.fullPath+"/filename"
$("#my_image").attr("src",fs.root.fullPath+"/filename");
}
);
答案 0 :(得分:1)
浏览器正在根据网址缓存图片。
如果您使用桌面Safari对本地html文件执行相同操作,并手动交换图像文件,也会发生这种情况。除非您点击重新加载,只是再次访问该页面,浏览器将使用缓存版本。
您可以通过添加随机查询参数使图像网址唯一,否则将忽略/无害。如果您有某种方式来跟踪修订或修改日期,请改用它。
<img id="i" src="test.png" />
<script>
document.getElementById("i").src += "?_r=" + Math.random();
</script>