Что имеется в виду?
На сайте есть html страницы со статьями. Каждая статья содержит одну тематическую картинку.
На базе страниц статей, на php формируются страницы анонсов к ним. Каждая страница с анонсами это краткое содержимое 5_ти статей с их уменьшенными картинками. Картинки уменьшаются средствами php и создаются временно для каждой открытой страницы с анонсами.
В чем проблема?
Проблема в том, что при переходе от одной страницы с анонсами к другой уменьшенные картинки анонсов остаются от прежней страницы с анонсами.
Они остаются в браузере. Что касается php там все впорядке. Одни временные картинки заменяются на другие.
Как решить эту проблему?
Спустя 7 минут, 44 секунды (25.05.2010 - 12:02) Basili4 написал(а):
я делал так <a href ="index.php?rrr=<?=rand(); ?>" > Сылка на туже страницу</a>
В кеш попадает другая старница с другими картинками
В кеш попадает другая старница с другими картинками
Спустя 24 минуты, 42 секунды (25.05.2010 - 12:27) zarafar написал(а):
Цитата |
я делал так <a href ="index.php?rrr=<?=rand(); ?>" > Сылка на туже страницу</a> В кеш попадает другая старница с другими картинками |
Basili4 Так как вы написали, не будет кешироваться лишь страница index.php, при чем тут картинки ?
Случайное число можно и в данном случае вероятно (если средствами php они создаются в ФС) нужно использовать не с линком на страницу, а с линком на конкретную картинку.
brdm
Цитата |
Картинки уменьшаются средствами php и создаются временно для каждой открытой страницы с анонсами. Что касается php там все впорядке. Одни временные картинки заменяются на другие. |
Из вами написанного могу предположить, что с помощью php картинки создаются в файловой системе, для каждой открытой страницы ?
Т.е. например открыта одна страница, для неё генерится картинка image.jpg, когда открывается другая страница эта картинка меняется на новую, с тем же именем image.jpg ? А если открыть опять первую страницу опять генерится та же картинка и скидывается в ФС с именем image.jpg ?
Если так, то не проще ли в ФС не создавать картинки, а отдавать сразу в браузер ?
Тогда для предотвращения кеширования, перед выводом картинки можно передать браузеру заголовки, чтобы не кешировал, что то типа :
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Content-type: image/png");
Спустя 6 минут, 14 секунд (25.05.2010 - 12:33) waldicom написал(а):
Цитата (zarafar @ 25.05.2010 - 11:27) |
Тогда для предотвращения кеширования, перед выводом картинки можно передать браузеру заголовки, чтобы не кешировал, что то типа : |
Или, как вариант, внести соответствующие директивы в настройки апача.
Спустя 4 минуты, 25 секунд (25.05.2010 - 12:38) zarafar написал(а):
Цитата (waldicom @ 25.05.2010 - 09:33) | ||
Или, как вариант, внести соответствующие директивы в настройки апача. |
Интересно, как это сделать выборочно не для всех картинок ?
Спустя 1 час, 3 минуты, 37 секунд (25.05.2010 - 13:41) brdm написал(а):
Немного информации:
Скрипт генерирует страницу с анонсами (допустим 5 шт). Страница с анонсами формируется путем выемки из развернутых страниц первого параграфа текста и картинки которая обязательно присутствует в первом параграфе страниц. Картинки уменьшаются и записываются в папку под именами 1.jpg ....5.ipg и при формировании страницы анонсов в цикле подставляются в кажды отдельный анонс страницы анонсов. При переходе на следующую страницу анонсов, которая формируется уже из других страниц-статей, прошлые картинки уничтожаются и на их место формируются новые. И т. д.
Вывести их сразу в браузер не позволяет устройство движка сайта, поскольку страница с анонсами готовится заранее в виде текстового файла (где уже есть все необходимое, теги, картинки с путями и т.п.) и только затем выводится в браузер.
Скрипт генерирует страницу с анонсами (допустим 5 шт). Страница с анонсами формируется путем выемки из развернутых страниц первого параграфа текста и картинки которая обязательно присутствует в первом параграфе страниц. Картинки уменьшаются и записываются в папку под именами 1.jpg ....5.ipg и при формировании страницы анонсов в цикле подставляются в кажды отдельный анонс страницы анонсов. При переходе на следующую страницу анонсов, которая формируется уже из других страниц-статей, прошлые картинки уничтожаются и на их место формируются новые. И т. д.
Вывести их сразу в браузер не позволяет устройство движка сайта, поскольку страница с анонсами готовится заранее в виде текстового файла (где уже есть все необходимое, теги, картинки с путями и т.п.) и только затем выводится в браузер.
Спустя 23 минуты, 7 секунд (25.05.2010 - 14:04) zarafar написал(а):
При выводе картинки сделайте на подобии:
<img src="1.jpg?noCache=<?php echo microtime(true)?>">
Спустя 23 минуты, 37 секунд (25.05.2010 - 14:28) twin написал(а):
Немного проще можно
<img src="1.jpg?<?php echo time()?>">
Спустя 18 минут, 25 секунд (25.05.2010 - 14:46) brdm написал(а):
После вывода в браузер смотрю в блокноте страницу
....
<img align="left" border="0" src="http://..../images/imganons/0.jpg?<?php echo
time()?>">
.....
В папке images/imganons картинка 0.jpg та, что нужно, а в браузере отображается картинка с прошлой страницы.
Чудеса какие то.
....
<img align="left" border="0" src="http://..../images/imganons/0.jpg?<?php echo
time()?>">
.....
В папке images/imganons картинка 0.jpg та, что нужно, а в браузере отображается картинка с прошлой страницы.
Чудеса какие то.
Спустя 48 минут, 24 секунды (25.05.2010 - 15:35) twin написал(а):
Файл должен быть исполняемым. Если нет, то тогда нужно доппараметр приделать javascript
Спустя 57 минут, 30 секунд (25.05.2010 - 16:32) brdm написал(а):
Понятно, спасибо.
У меня он какраз неисполняемый.
В браузер выводится содержимое переменной, куда загнана страница анонсов в текстовом виде.
А как туда приделать java?
У меня он какраз неисполняемый.
В браузер выводится содержимое переменной, куда загнана страница анонсов в текстовом виде.
А как туда приделать java?
Спустя 5 часов, 34 минуты, 50 секунд (25.05.2010 - 22:07) brdm написал(а):
Всем спасибо. Все решилось очень просто.
Имена создаваемых картинок должны быть уникальные типа $uniq_jpg = md5( uniqid(rand(), 1) ); а не 0.jpg, 1.jpg ... и тогда кеширование не действует.
Перед формированием каждой новой страницы с анонсами старые картинки нужно удалять.
Имена создаваемых картинок должны быть уникальные типа $uniq_jpg = md5( uniqid(rand(), 1) ); а не 0.jpg, 1.jpg ... и тогда кеширование не действует.
Перед формированием каждой новой страницы с анонсами старые картинки нужно удалять.