Как очистить кэш браузера?

12
AN
На сайте с 05.06.2004
Offline
243
7670

Или, грубо говоря, каким-то образом послать с сайта в браузер "Ctrl+F5"?

Браузер кэширует картинки, css и т.п., и надо бы при их изменении, скажем после закачки другой картинки под тем же именем, принудительно вычищать из кэша браузера старую версию этой картинки.

Есть вообще такие средства?

Размещу ваши баннеры на посещаемых сайтах. Места еще есть! Возможен безнал. (/ru/forum/324945) Нужны копирайтеры/рерайтеры - медики. Пишите в личку. (/ru/forum/676932)
DeveloperRu
На сайте с 27.02.2009
Offline
72
#1

так никто не делает

чтобы обновить кэш броузера из скрипта - посылают специальную строчку броузеру

читай тут http://www.nomagic.ru/all.php?aid=58

Ответы на вопросы (http://telenok.com)
neznaika
На сайте с 28.06.2006
Offline
356
#2

Почему не использовать версионность оформления? Генерируйте новый файл оформления+новый адрес картинок+JS, всего делов :)

Дорого покупаю настоящие сайты. Не инвестирую деньги и не беру кредиты.
[Удален]
#3

<img src='./tralalala.jpg' />

<img src='./tralalala.jpg?2010-07-01' />

с CSS так же.

Ну еще вот

BrokenBrake
На сайте с 03.03.2007
Offline
194
#4
So1:
Ну еще вот

Шикарный сайт! :)

L
На сайте с 12.11.2009
Offline
79
#5

<img src='./tralalala.jpg?<?php echo time()?>' />

AN
На сайте с 05.06.2004
Offline
243
#6
neznaika:
Почему не использовать версионность оформления? Генерируйте новый файл оформления+новый адрес картинок+JS, всего делов

Вот этого как раз очень не хочется...

DeveloperRu:
чтобы обновить кэш броузера из скрипта - посылают специальную строчку броузеру
читай тут http://www.nomagic.ru/all.php?aid=58

Варианты с .htaccess и http-заголовками интересные, но не совсем подходящие...

Дело в том, что скриптик, меняющий картинки, будет вызываться внутри CMS, которая заголовки формирует сама, и влазить туда крайне не хочется... хотя можно попытаться, если других вариантов не останется...

Через .htaccess, как у понимаю, можно только задать запрет кэширования для всех файлов из текущей папки, но это тоже не есть карашо... кэшироваться они должны, надо бы только исхитриться и сбросить кэш в том случае, если картинка изменилась, прям тем же скриптом, который эту картинку меняет.

So1:
<img src='./tralalala.jpg' />
<img src='./tralalala.jpg?2010-07-01' />

Так, а вот это, похоже, уже вполне подходящий вариант.

Можно уточнить, если постоянно выводится эта картинка через

<img src='./tralalala.jpg' />

затем скрипт ее переформировывает и один раз выкидывает в браузер через

<img src='./tralalala.jpg?<?php echo time()?>' />

и затем снова идут обращения через

<img src='./tralalala.jpg' />

то при них мы увидим уже обновленную картинку? Или надо случайный параметр подцеплять каждый раз? - тогда это тоже не вариант...

[Удален]
#7

Каждый раз подцеплять. У нас была такая проблема когда человек менял главную фотку. У главной фотки всегда имя одно и тоже, скажем, main.jpg. После смены человек видел старую фотку, потому что барузер закешировал по имени фотку main.jpg. а вот main.jpg?asdasdasd - уже другое имя, при том не знакомое браузеру. В PHP можно делать и time(), но мне больше нравится date('i-s') - вполне достаточно

neznaika
На сайте с 28.06.2006
Offline
356
#8
AnNik:
Так, а вот это, похоже, уже вполне подходящий вариант.

Бгг, вы точно поняли слово "версионность"? 😂

AN
На сайте с 05.06.2004
Offline
243
#9
neznaika:
Бгг, вы точно поняли слово "версионность"?

Скажем так, я в первом посте, возможно, не совсем точно сформулировал, что мне надо:)

Задача, на самом деле, гораздо проще.

Есть некая картинка с постоянным адресом.

<img src='./tralalala.jpg' />

Есть скриптик, с помощью которого пользователь может ее подкорректировать.

Надо, чтобы после этой корректировки пользователь видел обновленную картинку, а не ту, которая осталась болтаться с незапамятных времен в кэше его браузера, под тем же (крайне желательно) урлом.

Можно конечно в конце работы скрипта вывести на экран большими красными буквами "Жми Ctrl+F5", но хотелось бы более элегантного решения:)

То есть в идеале надо бы иметь возможность удалить из кэша браузера конкретный файл site.ru/tralalala.jpg

Возможно это как-то сделать скриптом, например на JS? (вариант с http-заголовками пока отложим в сторону, почему - написал выше).

AnNik добавил 02.07.2010 в 10:40

So1:
У нас была такая проблема когда человек менял главную фотку. У главной фотки всегда имя одно и тоже, скажем, main.jpg. После смены человек видел старую фотку, потому что барузер закешировал по имени фотку main.jpg

Вот-вот, проблемка практически абсолютно та же самая.

Но она усугубляется еще и тем, что этот пользователь мог уже много где понавтыкать ссылок <img src='site.ru/tralalala.jpg' />, и заставить его менять их просто нереально:)

Надо, чтобы хотя бы он сам видел бы по этим ссылкам обновленные картинки.

[Удален]
#10

На каком сервере стоит сайт? Apache / nginx ? можно указать серверу не кешировать картинки. Тогда сервер отдаст браузеру не верную дату Expires и при следующей загрузке клиент (браузер) запросит файл заново.

PS сам не проверял, к сожалению, но по идее все легко должно быть.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий