PDA

Просмотр полной версии : Обновление файлов на сервере


darkzip
15.01.2007, 04:01
В общем вопрос прост - как запретить кэшировать (или заставить каждый раз заново подгружать) флэшки! Причем у меня 1 htm документ, там основная флэшка, в которую грузятся другие. Как это всё заставить обновляться каждый раз?? Форум читал, но так и не нашел понятного решения. Ведь многие сайты как-то решили этот вопрос!?

Kikasso
15.01.2007, 05:22
попробуй вместо "somefile.swf"
грузить "somefile.swf" + "?" + Math.random();
меняется урл - файл грузится заново.
Если список файлов вам выдает php, можно сделать хитрее - после вопроса передавать время последней модификации файла. В таком случае файл грузится заново, только если он обновился.
А вообще вопрос не нов, поройтесь на форуме.

darkzip
15.01.2007, 05:27
Да я смотрел форум, решений так и не нашел хороших. Да и протестировать такое ведь сложновато, поэтому и ищу ТОЧНО хорошее решение.

А куда этот код вписывать надо?

P.S. никакого php нет, там тупо в html подгружается swf а в него другие. Хотелось бы, чтоб и они тоже заново подгружались...

Kikasso
15.01.2007, 05:51
А куда этот код вписывать надо?

Во флеше. Для броузера "somefile.swf?12345" и "somefile.swf?54321" разные файлы. Если не сработает рэндом (хотя по идее должен), дописывай ну допустим текущее время.

var fileLocation:String = "somefile.swf";
var fileToLoad:String = fileLocation + "?" + (new Date()).getTime();
Если все еще неясно, приложи кусочек кода, где ты файлы грузишь.

darkzip
15.01.2007, 07:19
я так понимаю делать надо так:

_root.name.loadMovie('"somefile.swf" + "?" + Math.random();');

Верно? Не работает!((


А как запретить кэширование самого главного swf? (который в html подгружается).

Kikasso
15.01.2007, 10:37
я так понимаю делать надо так:

_root.name.loadMovie('"somefile.swf" + "?" + Math.random();');

Верно? Не работает!((

слишком много кавычек.

_root.name.loadMovie( "somefile1.swf" + "?" + Math.random() );
//или
_root.name.loadMovie( "somefile3.swf" + "?" + (new Date()).getTime() );
если первый не сработает, используйте третий. (upd: в смысле второй )


А как запретить кэширование самого главного swf? (который в html подгружается).


поищите на форуме по словам "запрет кеширования", точно найдете. Принцип тот же, только случайное число впечатывает джаваскрипт.
Для этого идеально подойдет sfwobject (поиск)

silin
15.01.2007, 10:51
_root.name.loadMovie("somefile.swf" + "?val=" + Math.random());

Kikasso
15.01.2007, 11:53
_root.name.loadMovie("somefile.swf" + "?val=" + Math.random());
необязательно. Мы же не собираемся потом это парсить.