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

ich_heise_tod 21.07.2009 15:15

флешварс
 
Написал плагин для CommunityBuilder (компонент Joomla), для загрузки и воспроизведения музыки. При каждом обновлении страницы, генерируется новый xml со списком музыки.
Сам xml задается через флешварс, то есть:
Код:

flashvars="playlist=mp3player.xml"
проблема состоит в том, что при загрузке мелодии список не обновляется. то есть mp3 файл загружается, новый xml генерируется, а в браузере плеер остается таким каким и был(со старыми мелодиями), и чтобы увидеть новый список, необходимо очищать кэш или перезагружать браузер.
плиз, помогите, как можно решить эту проблему?

ЗЫ, сам во флеше не шарю, за основу самого плеера взял беспатный плеер.
ЗЫЫ, если напутал с разделом перенесите куда нужно, плиз =)

Juice_Green 21.07.2009 15:18

добавляйте рандом последовательность при загрузке xml файла с флеша

ich_heise_tod 21.07.2009 15:35

2Juice_Green
пожалуйста, могли бы вы поподробнее объяснить

point111 21.07.2009 16:29

Дмитрий Гурский

Action
Script 2.0

Цитата:

10.7.6. Кэширование swf-фильмов

Широко использующимся в сети способом повышения производительности является сохранение на жестком диске пользователя загруженных ранее страниц па случай их повторного запроса. Этот метод называется кэшированием, и его поддерживают все современные браузеры. Кэшируются все элементы, встроенные в страницу, в том числе и swf-фильмы. Более того, кэшированию подвергаются даже фильмы, закачанные автономным плейером или плейером среды тестирования Flash, а также фильмы, загруженные посредством функции loadMovie(). В этом можно убедиться
двумя способами. Во-первых, можно обратиться к директории, я которой хранятся кэшированные файлы (в русифицированной Windows их принято называть временными файлами Интернета —Temporary Internet Files). В Windows 2000 путь к этой директории имеет приблизительно следующий вид: C:\Documenls and Settings\user\Local Settings\Temporary Internet Files. Во-вторых, можно сравнить время, которое требуется на то, чтобы была проведена первая и последующие загрузки фильма. Повторный импорт фильма потребует несопоставимо меньше времени. То, что swf-фильмы кэшируются, очень хорошо. Это означает, что если в вашем проекте один элемент загружается несколько раз, то существенного времени потребует лишь его первая закачка.
Повторный же импорт будет осуществлен почти моментально.

Однако у кэширования есть и негативная сторона, связанная с отладкой. Например, представьте,
что вы создаете предзагрузчик. Чтобы его тестировать, вы закачиваете некоторый swf-файл на сервер. Запустив фильм в первый раз, вы обнаруживаете ошибки и исправляете их. Однако проверить, корректно ли стал работать предзагрузчик, у вас не получится, так как реальная загрузка осуществляться не будет. Плейер просто возьмет копию фильма из папки Temporary Internet Files.
Как же в такой ситуации провести отладку? Можно, конечно, менять имя фильма на сервере, но этот способ неэффективен. Более технично использовать один из следующих подходов;
• удалять копию фильма из папки Temporary Internet Files. Подход хороший, если загружается немного фильмов;
• воспользоваться тем, что URL может содержать придаток сданными (метод GET), причем один URL, но с разными данными воспринимается как разные ссылки. Следовательно, присоединяя к
адресующему фильм URL случайное число, можно заставить плейер осуществлять загрузку из сети даже тогда, когда в кэше имеется копия фильма. Важное условие успешности описанного подхода следующее: ссылка на swf-файл должна быть абсолютной, а не относительной.

Например:
this.createEmptyMovieClip("clip", 0);
clip.loadMovie("http://www.mysite.ru/film.swf?"+Math.random());


Данный подход лучше предыдущего, так как он подходит для предотвращения кэширования на машине пользователя (это может быть необходимо, если фильм обновляется довольно часто).
Бороться с кэшированием фильмов, встроенных в HTML-страницу, также несложно. Для этого можно к URL, адресующему фильм, присоединять случайное число (посредством JavaScript).
Также можно использовать серверный скрипт, который будет исполнять роль посредника. Наиболее же простой способ избежать кэширования заключается в создании следующего заголовка:

<НЕАD>
<МЕТА HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>


ich_heise_tod 21.07.2009 22:59

Всем большое спасибо, но решил эту проблему я средствами php.
отключать кэш для всей страницы не лучшей вариант... я сделал рандомные имена xml файлов, поэтому список обновляется каждый раз при обновлении страницы.

Juice_Green 22.07.2009 07:38

to @ich_heise_tod:
а кто вам сказал, что нужно отключать кеш?
выше вам уже показали на примере загрузки swf, так же добавляя в конце "?"+Math.random() можно грузить и xml файл


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

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