![]() |
Кэш и Flash
Здравствуйте
При написании приложения для одной из социальных сетей у меня возникла проблема: после первого запуска приложения, оно сохраняется в кэш, а мне надо что бы при повторном заходе оно загружалось заново. Возможен ли такой вариант? и ещё вопрос, При запуске приложения существует ли возможность не полностью загружать флешку, например при нажатии на кнопку, подгружать определенную часть? |
ответ о чайника, прошу не бить :))
полагаю, что на первый вопрос ответ скорее нет, чем да. кеш штука страшная. а вот второе я видела сплошь и рядом) когда флешка грузится кусочками (99% флешсайтов, при переходе из одного раздела в другой грузят новые куски). так что решение видимо в том, чтобы сначала грузился некий загрузчик, а потом уже на основе данных из соцсети он подгружал дальше то, что надо |
Хороший ответ от чайника, бить нет необходимости.
|
Спасибо=)
Тогда другой вопрос, я пишу что то вроде Измерителя Скорости Интернета, при первом запуске результат получается приемлимый, а при повторной загрузке кэш все сбивает.. существует ли альтернативный способ измерения, и какими способами его можно реализовать.. у меня была идея подгружать swf в главную прогу, а потом выгружать.. что на это скажете? |
Добавлять к адресу загружаемого файла мистический: url + "?" + Math.random()
|
Правильнее добавлять время в миллисекундах:
Код AS3:
|
Все заработало)
Спасибо):) |
Цитата:
Зачем при каждом запросе то файл перегружать? (Оказывается, протокол http позволяет сообщать бравзеру о необходимости перезагрузки файла. Только по умолчанию сервер врет, что файл не обновился где-то в течении суток) |
Цитата:
А мужики то не знали.. Я делал специальные загрузчики/отдатчики-антикэш на серваке, которые Код AS3:
Код AS3:
Код AS3:
Код AS3:
|
@expl
Цитата:
@Котяра у меня обычно так - при сборке приложения в рантайме основной модуль загружает с сервера список модулей с их версиями. Далее в конец запроса добавляется номер последней версии и все, что не обновилось, берется из кеша |
Цитата:
Вобщем php-шники должны быть в курсе. Кстати, первая строчка сверху в Google, вроде в тему: Настройка времени кеширования запроса апач Цитата:
Цитата:
|
А я лично отдаю решение вопросов что грузить, что не грузить на усмотрение флэшплеера.
При загрузке приложение скачивает xml-ку с перечнем библиотечных файлов и честно грузит их. Если они уже есть в кэше, они загрузятся сразу, если их там нет (в списке новые версии, пользователь кэш браузера чистил и пр.) - значит загрузятся с сервера. Понятно, что библиотечные файлы должны иметь уникальное собственное имя или уникальное имя каталога, в котором лежат. И чего-то мне кажется, если файл resource003.swf (а еще пуще - resourceConfig.xml) в браузере закэшировался, то никакие пляски с бубном на стороне сервера ничего не изменят. Пользователи смотрят приложение через такой зоопарк браузеров, что где-нибудь что-нибудь у кого-нибудь закэшируется по-любому. |
Цитата:
А по поводу зоопарка бравзеров - чтож, посмотрим, если огребем проблем - сделаем загрузку списка файлов, но пока надеемся на автоматику - все же на один файл меньше грузить и гемора тоже поменьше. Так что пока обкатываем этот подход. |
@mikhaik
Цитата:
0) получаем имя необходимого файла 1) смотрим есть ли файл в кеше - да есть 1.1) если есть - посылаем запрос на сервер с указанием даты, когда закешировали файл 1.2) получаем ответ от сервера - изменился файл или нет с той поры 1.3) если не изменился - грузим из кеша 2) файла нет в кеше или он устарел - грузим заново И это есть общепринятый алгоритм для всех браузеров. Так что, по идее, если файл есть в кеше - все зависит от сервера @expl Цитата:
Первый вариант не подходит в силу своей бесполезности. Второй - в силу того, что наши серверники любят экономить запросы к БД и бьют меня линейкой за такое предложение =) Может есть еще какой-то мистический 3-й вариант, но пока, на мой взгляд, он один - грузить конфиги с версиями во флеш, а уже оттуда обращаться с дописыванием версии в конец запроса. UPD Да, для Apache 2.1 модуль mod_mem_cashe перестал быть экспериментальным и позволяет хранить в оперативной памяти сервера дату последней модификации файла. Но memCahse? стоит ли оно того в данном случае? |
Цитата:
Цитата:
Надо попытать нашего сервериста на предмет этих граблей |
Цитата:
Я как раз сейчас последний проект работал в команде, где второй AS3-программист исходил именно из этого. По каждому уровню у него грузилось несколько файлов - и xml-ки и картинки и swf-ки и 3ds-модельки... Уровней более 10, т.е всего около сотни файлов. Когда уже приложение было собрано и начали активно дорабатывать и заменять уровни, влетели в проблему с кэшированием по полной. :) |
А у нас был xml-файлик с timestamp-ами всех файлов. Загрузка файликов производилась по ссылке file.ext?12345678. xml-файлик при это обновлялся после обновления файла. В результате старые файлы не загружались по новой, а новые — из кеша.
|
а что происходило, если пользователь у себя кэш почистил ручками?
или там для старых было без "?12345678" ? |
Цитата:
Для всех файлов был указан timestamp. |
| Часовой пояс GMT +4, время: 22:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.