| 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>
|
|