Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Смена src тега img (https://javascript.ru/forum/css-html/75037-smena-src-tega-img.html)

atanov 27.08.2018 21:13

Смена src тега img
 
Доброго времени уважаемым гуру js.
Скажем есть тег img с неким src. Страница загружается, картинка браузером кэшируется. Далее программно заменяем scr на другую картинку. Понятно, что при перезагрузке, появится новая картинка. А можно ли заставить движок заменить картинку из кэша на новую без перезагрузки страницы?

рони 27.08.2018 21:31

atanov,
localStorage

atanov 27.08.2018 21:39

Цитата:

Сообщение от рони (Сообщение 493496)
atanov,
localStorage

А поподробнее :) :) :)

рони 27.08.2018 21:53

atanov,
а макет?

Aetae 27.08.2018 22:09

Я так понял заменяете вы на сервере?
Тогда:
img.src = img.src.replace(/(?:\?.*)?$/, '?' + +new Date);
Если сервер посылает заголовки no-cache, то и просто
img.src = img.src;
должно сработать.

рони 27.08.2018 22:19

:-? видимо я неправильно понял вопрос.

Aetae 27.08.2018 22:42

рони, а может и я, кто знает...:)

j0hnik 27.08.2018 23:34

<img src="https://javascript.ru/forum/image.php?u=4993&dateline=1299014303" alt="" id='img'>
<button id="btn">Нажми один раз</button>

<script>
	btn.onclick = e => img.src = 'https://javascript.ru/forum/image.php?u=7416&dateline=1372796129';
</script>

atanov 28.08.2018 10:04

Цитата:

Сообщение от Aetae (Сообщение 493503)
Я так понял заменяете вы на сервере?
Тогда:
img.src = img.src.replace(/(?:\?.*)?$/, '?' + +new Date);
Если сервер посылает заголовки no-cache, то и просто
img.src = img.src;
должно сработать.

Да, заменяю картинку на сервере (или новую вставляю) ajax'ом + ещё изменяю информацию в бд. Далее возвращаю из бд уже изменённую инфу и json'ом отправляю обратно на клиент. json на клиенте распарсиваю и вставляю в соответствующие места, а src картинки просто подменяю. Вот в примере j0hnik это прекрасно работает, у меня только после перезагрузки :cray:

рони 28.08.2018 10:10

atanov,
код Aetae, работает у вас? если нет, покажите
Цитата:

Сообщение от atanov
а src картинки просто подменяю.


atanov 28.08.2018 10:46

рони,
не, не Aetae, а код j0hnik на форуме сработал, у себя ещё не запускал.

рони 28.08.2018 13:24

Цитата:

Сообщение от atanov
не, не Aetae,

не не, а да да!!! :)

atanov 28.08.2018 17:45

Aetae,
рони,
у меня вот так было:

document.getElementsByClassName('tdPhoto')[tdid].firstChild.src = '/images/image' + updatedInformation.ID + '.jpg';


Собственно файл лежит в папке images в корне, называется imageцифра.jpg.

Как сюда подменить источник и главное зачем регулярка тута?

рони 28.08.2018 18:09

atanov,
document.getElementsByClassName('tdPhoto')[tdid].firstChild.src = '/images/image' + updatedInformation.ID + '.jpg?' +  +new Date;

atanov 29.08.2018 14:50

рони,
Спасибо!


Часовой пояс GMT +3, время: 16:54.