我正在使用Ext JS 3.4,每当我用新的源打开新窗口时,图像都保持不变。我记录了src路径,它每次都会改变,但我不知道为什么它会一直向我显示相同的图像。
我一直在查找几个小时,但getCmp().getView().refresh()
或任何与此问题相关的功能都不包含在3.4中。
var image = new Ext.BoxComponent({
autoEl: {
tag: 'img',
width: 90,
height: 250,
src: img_path
}
});
我这样做了,并尝试在
中打开它new_win = new Ext.Window( ... );
(更具体地说,在vbox的一面)。 我多次检查过image.autoEl.src已更新,但new_win一直显示我之前显示的第一张图片。任何人都可以给我解决方案或至少任何建议吗?
答案 0 :(得分:1)
问题是浏览器缓存。浏览器默认缓存GET请求中的所有资源
ExtJS在与disable caching的连接上有一个配置,它为GET请求添加了一个唯一的cache-buster参数
最好将唯一参数添加到img_path
代码应该像
autoEl: {
tag: 'img',
width: 90,
height: 250,
src: Ext.urlAppend(img_path, '_dc=' + (new Date().getTime()))
}
答案 1 :(得分:0)
看看是否有帮助,首先,为您的autoEl
autoEl: {
tag: 'img',
id: 'myImage',
width: 90,
height: 250,
src: img_path
}
然后使用DOM更改图像
function setImage(new_image) {
document.getElementById('myImage').src = new_image;
}