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 картинки просто подменяю.



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