Ext JS 3.4 图片刷新

Posted

技术标签:

【中文标题】Ext JS 3.4 图片刷新【英文标题】:Ext JS 3.4 image refresh 【发布时间】:2018-05-08 17:10:47 【问题描述】:

我使用的是 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 不断向我显示之前显示的第一张图片。谁能给我解决方案或至少任何建议?

【问题讨论】:

【参考方案1】:

问题是浏览器缓存。浏览器默认缓存 GET 请求中的所有资源

ExtJS 有一个连接到 disable caching 的配置,它为 GET 请求添加了一个唯一的缓存破坏器参数

最好给img_path加上唯一参数

代码应该是这样的

autoEl: 
            tag: 'img',
            width: 90, 
            height: 250, 
            src: Ext.urlAppend(img_path, '_dc=' + (new Date().getTime())) 
        

【讨论】:

【参考方案2】:

看看这是否有帮助,首先,给它一个 ID 给你的autoEl

autoEl: 
    tag: 'img',
    id: 'myImage',
    width: 90,
    height: 250,
    src: img_path

然后使用DOM来改变图片

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

【讨论】:

完美!对此,我真的非常感激。我为此苦苦挣扎了一段时间。

以上是关于Ext JS 3.4 图片刷新的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Ext JS - 如何在日期选择后刷新标签?

Ext Js Paging 无法导航到下一页,刷新,最后一页不起作用

JS子页面自动关闭后刷新父页面

在 extjs 3.4 中刷新面板中的数据视图

如何刷新 Ext.NET GridPanel 的内容?

ajaxfileupload.js实现无刷新异步上传图片Demo