Ext JS 3.4 обновление изображения - PullRequest
0 голосов
/ 08 мая 2018

Я использую 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 голосов
/ 09 мая 2018

Проблема в кешировании браузера. Браузеры по умолчанию кэшируют все ресурсы в GET-запросах

ExtJS имеет конфигурацию для подключений к отключить кэширование , которое добавляет уникальный параметр кеша к GET-запросам

Лучше добавить уникальный параметр в img_path

Код должен быть как

autoEl: {
            tag: 'img',
            width: 90, 
            height: 250, 
            src: Ext.urlAppend(img_path, '_dc=' + (new Date().getTime())) 
        }
0 голосов
/ 08 мая 2018

Посмотрите, поможет ли это, во-первых, присвойте ему 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;
}
...