Кеширование части страницы

montanara
На сайте с 08.02.2006
Offline
118
773

Требуется запретить кеширование для куска страницы. А именно для флеша (в нем выводится меняющаяся изо дня в день информация). В то же время не хочется заставлять посетителя по новой грузить все остальное...

Кто-нибудь решал такую задачу?

Bor-ka
На сайте с 16.11.2004
Offline
256
#1

montanara,

если в браузере - то через iframe, но это изврат редкостный.

M
На сайте с 23.08.2001
Offline
74
#2

Вопрос не такой просто как может показаться на первый взгляд. С точки зрения стандартов тут достаточно выводить неизменную дату (реальную дату обновления страницы) в Last-Modified для самой страницы и текущую дату Last-Modified для флешки.

Тогда для страницы сервер будет выдавать 304, а для флешки всегда 200.

Это будет работать в большинстве браузеров. Но никакой сто-процентной гарантии. Любой прокси может подправить политику браузра или просто кеш может быть отключен.

C уважением, Михаил. http://mike.nov.ru/ (http://mike.nov.ru/)
Ёжик В Тумане
На сайте с 26.07.2006
Offline
16
#3

как вариант добавлять к url флешки рандомное значение, примерно так:


<object type="application/x-shockwave-flash" data="flash.swf?123" width="385" height="150">

<param name="movie" value="flash.swf?123" />
</object>
Ушел в себя, забыл про форум.
Вернусь ли? Не знаю... Если нужен, пишите в аську...
montanara
На сайте с 08.02.2006
Offline
118
#4
Ёжик В Тумане:
как вариант добавлять к url флешки рандомное значение, примерно так:

<object type="application/x-shockwave-flash" data="flash.swf?123" width="385" height="150">

<param name="movie" value="flash.swf?123" />
</object>

О, какая простая мысль! счас попробую....

Увы... (((

M
На сайте с 23.08.2001
Offline
74
#5
montanara:
О, какая простая мысль! счас попробую....

Увы... (((

Только делать это нужно JavaScript'ом, иначе страница каждый раз будет менятся, и не будет кешироваться.

S
На сайте с 28.10.2005
Offline
319
#6


<?

header('Cache-Control: max-age=XXXX, public');
// Где ХХХ - время в секундах, в течении которого страница должна кешироваться
// Например сутки = 86400

...

$nocache=mt_rand(1,1000000);

echo '
...
<object type="application/x-shockwave-flash" data="flash.swf?'.$nocache.'" width="385" height="150">
<param name="movie" value="flash.swf?'.$nocache.'" />
</object>
...
';

...

?>

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