Форум 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=82210)

всеникизаняты 07.07.2006 02:18

Кэширование подгружаемых объектов
 
Привет

Кто-нибудь интересовался вопросом кэширования подгружаемых во флешку внешних картинок/мувиков/данных? Поскольку процесс загрузки полностью скрыт за loadMovie, ни о каком влиянии на обмен HTTP заголовками между удаленным сервером и флешем наверное и речи быть не может. Чисто субъективно кэширования нет: флешу пофиг, старая ли твоя картинка или нет, то же самое при закачке XML. Или я не прав и на это можно влиять?

etc 07.07.2006 02:42

Не прав насчет того, что не кешируется. Кеширует браузер.

kayama 07.07.2006 10:34

Кэширует первую флэшку, будь то прелодер или просто свиф(пустой), дальше все грузится заново.

всеникизаняты 07.07.2006 12:57

2 etc
Браузер кэширует. Если вебсервер, конечно, заголовки шлет. Но дело в том, что, как говорит kayama, баннер-то тянет то картинки в себя будучи уже на клиентской машине. И вот тут проверяется-ли загружаемая флешкой инфа на момент необходимости обновления...

iNils 07.07.2006 13:00

К имени фала добавляешь случайное значение и у тебя всегда "самое свежее"

всеникизаняты 07.07.2006 14:33

:-)
Дело в том, что мне самое свежее и не надо. Мне надо чтобы он проверял, обновился ли документ на сервере, который он тянет или нет. Вот посмотрю заголовки, которые он посылает, все станет ясно.

всеникизаняты 07.07.2006 14:34

Обясню мой случай: баннер тянет на себя XML с сервера. Этот XML обновляется в среднем раз в неделю, смысла тянуть его каждый раз нет.

всеникизаняты 07.07.2006 14:35

В случае применения кэширования, при отсутствии на сервере обновленной версии все коммуникации баннера с сервером ограничиваются обменом HTTP заголовками.

etc 07.07.2006 14:49

Ну так пропишите в заголовке кеширование на неделю... Запрос файла делает браузер, а не флешка.

В чём проблема?

всеникизаняты 07.07.2006 15:06

Вот нарисовалась проблема в общих чертах, хотя, впрочем уже и решение есть.

Факты:
1.Весь обмен HTTP-заголовками в случае встроенного в HTML флеша осуществляется браузером на общих основаниях.
2.Скрипт генерит XML.
3.Браузер НЕ проверяет кэширование скриптов (логично, да?), но проверяет кэширование картинок, котороые мы грузим во флеш и XML файлов. Возникает идея через mod_rewrite заставить его думать, что он обращается к XML.
4.Идея эта оказывается бредовая, поскольку нет смысла проверять дату, когда изменился скрипт, ибо влияет только фактор, когда изменились данные, которые отдает скрипт.
Выход - генерить статический XML файл каждый раз, когда в данных происходят изменения. В этом случае будет работать кэширование и XML документы не будут таскаться по сети.

всеникизаняты 16.07.2006 17:35

Все-таки тут есть проблема. Я не знаю логику работы флеша, но по каким-то своим внутренним соображениям он запрашивает у сервера "изменился ли файл", который надо XML.load(), только несколько раз, а потом даже перестает обращаться к серверу и все время показывает одно и то же, причем ctrl+f5 браузера не помогает.
Тут на форуме есть только один вариант решения (на сколько я понял):
дописывать к имени запрашиваемого файла уникальную строку. К сожалению, в этом случае мы полностью лишаем себя тех прекрасных средств кэширования, которые предоставляет HTTP протокол. При запросе статического контента браузер спрашивает у сервера: "а изменился ли этот файл со времени последней его скачки?". И он забирает его только в том случае, если файл изменился. В случае же с флешем, он работает непрозрачно, то есть он как-то сам определяет, передавать ли браузеру запрос на файл или нет. Это, конечно, большой недостаток. Уж и не знаю, существует ли способ порешить его...


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

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