Android,Phonegap,jqm 1.4
当用户在我的应用中上传新的个人资料照片时,它会在服务器上发生变化,但由于img src是相同的路径(相同路径,新数据),因此它不会在应用中更新(页面刷新,构建一个新的图像元素等。)我必须重新启动应用程序才能进行更改。
有没有办法只刷新图像元素,以便重新下载图像?
我认为它正在缓存图像...我想保持缓存一般,但只是在用户更改图片时“取消缓存”。
注意:我的chrome / ripple模拟器中不会发生此问题,它会在页面刷新时更新。
答案 0 :(得分:3)
您需要更改图像路径以强制再次下载。为此,请将未使用的URL参数添加到路径末尾,如下所示:
$("#myimg").attr("src", "/path/to/myimg.jpg?"+ new Date().getTime());
// OR
$("#myimg").attr("src", "/path/to/myimg.jpg?"+ Math.random());
试试jQuery Mobile。
答案 1 :(得分:2)
以下小函数通过将哈希附加到源
来重新加载图像(function($){
$.fn.ForceReload = function(UserSettings){
// Settings
var Settings = $.extend({
Hash: new Date().getTime()
}, UserSettings);
// Image iteration
this.each(function(){
var _this = $(this);
var img = _this.clone();
var src = img.attr("src");
img.attr("src", src + (src.indexOf("?") > -1 ? "&" : "?") + "hash=" + Settings.Hash).one("load", function(){
_this.after(img);
_this.remove();
});
});
}
}(jQuery));
并使用如下:
$("img").ForceReload();
答案 2 :(得分:1)
重新加载您的信息页:
$(document).ready(function() {
setInterval(function(){
location.reload();
}, 1000);
});
或者:
$(document).ready(function() {
setInterval(function(){
$("#myimg").attr("src", "img.jpg?"+ new Date().getTime());
}, 1000);
});