Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Запретить кэширование (http://www.flasher.ru/forum/showthread.php?t=176927)

Nweb 20.03.2012 21:31

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

mooncar 20.03.2012 21:46

На будущее - тему нужно называть более информативно, иначе она будет закрыта.

По существу:
Все зависит от ваших целей - если вам как разработчику неудобно, то для начала можно отключить кэширование в браузере.

Nweb 20.03.2012 21:49

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

Это не помогло никак:
Код:

<meta http-equiv="Cache-Control" content="no-cache" />
всё равно флеш обновляется где-то раз в час

mooncar 20.03.2012 21:58

Цитата:

Сообщение от Nweb (Сообщение 1070172)
флеш при каждой загрузке разный, хотя имя файла swf одно и то же

SWF генерируется на сервере?!

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

Попробуйте так в коде вставки, везде, где указано имя ролика:
Код:

movie.swf?<?php echo rand() ?>
Если скриптовый процессор не PHP, то используйте аналогичную рандомную добавку.

dark256 21.03.2012 11:23

Код:

флеш при каждой загрузке разный, хотя имя файла swf одно и то же
Кэш браузера обычно слабо ориентируется именно на имя файла. Его задача именно обновлять файлы с одинаковыми именами при измении их контента...

Nweb 21.03.2012 14:51

Спасибо за помощь, но пробую -не помогает - хотя теперь к коде видно что функция рэнд срабатывает, вот код в браузере гугл:
Код:

<div class="main"><object type="application/x-shockwave-flash" id="Browser" data="Brow.swf?974279516)" width="2000px" height="1000px"><param name="menu" value="false"><param name="scale" value="noScale"><param name="allowFullscreen" value="true"><param name="allowScriptAccess" value="always"><param name="bgcolor" value=""><param name="wmode" value="transparent"></object></div>
Может я что-то неправильно делаю?

mooncar 21.03.2012 15:00

Код:

Brow.swf?974279516)
Скобочка лишняя. Ну вообще-то не повлияет наверное.

Не силен в серверных делах, но может быть немного усложнить URL с указанием имени переменной:
Код:

Brow.swf?rnd=<?php echo rand() ?>
Вот здесь еще почитайте.
+ к метатегу Cache-Control на странице еще директиву в .htaccess на сервере прописать стоит.

Nweb 21.03.2012 15:45

Какие имнно директивы, пробую так(это всё содержимое файла .htaccess):
Код:

ExpiresActive on
# ExpiresDefault A 1

По идее он должен обновляться раз в секунду - это лучше чем раз в час как сейчас - не обновляется

mooncar 21.03.2012 16:10

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

PS. Избегайте избыточного цитирования, не захламляйте сообщения полнотекстовыми цитатами, ведь пока логика ответов понятна и без этого.

alatar 21.03.2012 16:26

Для управления кэшем браузера есть соответствующие HTTP-заголовки. Что в html имитируется тегом meta. Вам необходимо отправить заголовок Cache-Control в ответе на запрос вашего swf.


Часовой пояс GMT +4, время: 05:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.