Ext JS 3.4图像刷新

时间:2018-05-08 17:10:47

标签: javascript extjs extjs3

我正在使用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一直显示我之前显示的第一张图片。任何人都可以给我解决方案或至少任何建议吗?

2 个答案:

答案 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

提供 ID
autoEl: {
    tag: 'img',
    id: 'myImage',
    width: 90,
    height: 250,
    src: img_path
}

然后使用DOM更改图像

function setImage(new_image) {
    document.getElementById('myImage').src = new_image;
}