Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   flash и кэш-директивы (http://www.flasher.ru/forum/showthread.php?t=92926)

firelord 09.03.2007 23:47

flash и кэш-директивы
 
Вообщем, тема вроде как простая, но вопрос с подковыркой ;) и поиск не рулит ни фига! :(

Есть несколько мувов - лоадер, который грузит пару других. Соответственно, лоадер с течением времени не изменяется - меняться в нем нечему. А какой-нибудь из подгружаемых мувиков запросто может обновиться.

В обычной ситуации очень хорошо, если мувики кэшируются - не грузятся каждый раз при обновлении страницы. Однако все-таки - как заставить браузер обновить измененный мув, если вдруг в него вносятся какие-либо изменения?

1. Подставлять параметр - не годится, т.к. для этого надо патчить лоадер (название подгружаемого мувика зашито в лоадере). Передавать название через параметр - тоже слишком геморно (ну, на крайний случай)

2. Обрубать кэширование совсем - не годится, т.к. в обычной ситуации кэширование необходимо.

В идеале было бы, если бы flash умел отрабатывать Last-modified - однако, он походу этого не делает ;) Может быть есть все-таки какая-то хитрая комбинация cache-control директив, которую флеш понимает? Или он вообще на мув, лежащий в кеше, не отправляет запрос на сервер?

З.Ы. не знаю, насколько прозрачно изложил проблему - мозги запинаются вже...

iNils 10.03.2007 00:03

Перед закачкой запрашивать сервер об изменениях.

firelord 10.03.2007 00:08

в смысле - в лоадере? и в зависимости от этого - подставлять, например, параметр? хм... это вариант! из геморройных, канечна, но как направление мысли... спасибо! а что все-таки про директивы HTTP для флеша? есть какая-нибудь инфа?

firelord 10.03.2007 00:10

кстати, как вообще флеш грузит внешние объекты - он собственный сокет открывает или все-таки через браузер как-то делает? ведь использует же он механизм кэширования браузера - или он его просто эмулирует?

iNils 10.03.2007 00:14

Флеш использует механизм браузера.

firelord 13.03.2007 12:13

спасибо! вроде придумал простой и эффективный способ. как часто нужна чья-то грамотная подсказка, чтобы натолкнуть на мысль и придумать "самому" :)

MyXus 13.03.2007 13:42

да лан. зашиваю во все проекты некий URLEncoder который лопает flashVariable _root['version'] и атачит к урлу. При апдейте меняем вёршн и всё ок.

Kikasso 13.03.2007 14:06

У меня механизм такой:
1) флеш запрашивает у сервака список файлов. Запрос идет POST, следовательно не кешируется
2) php на сервере выдает список, прилепляя к url файла время последней модификации.
Что-то вроде этого:

Код:

$filename = "somefile.swf";
$url = $filename . "?lastmod=" . filemtime($filename);

Соответственно файл изменен - меняется url и файл грузится, не изменен - броузер сам решает, грузить ему или нет.

FourSide 13.03.2007 18:42

Делал наподобие системы у Kikasso: запрашивал список нужных файлов, а файлы в имени имели номер версии. Так что все файлы уже скаченной версии должны были кешироваться, а новые - уже другое имя файла.

firelord 13.03.2007 20:03

а я так и решил делать - передавать в лоадер сквозной номер версии - при его изменении, фактически, вся система перегружается - но зато гарантированное (с известной вероятностью) обновление


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

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