Как сделать файл flex mxml, запускаемый на сервере, как файл swf / html без кэширования? - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть приложение, разработанное в Flex, развернутое на сервере. В приложении данные заполняются пользователем и сохраняются в файлах cookie, чтобы быть доступными, даже когда пользователь закрывает приложение. Однако, если выпущена новая версия приложения, пользователь все равно может получить доступ к более старой версии, сохраненной в кэше. Как можно быть уверенным, что всякий раз, когда выпускается новая версия приложения, приложение загружается с сервера, а не из кэша, и в то же время в новой версии могут быть также доступны данные, сохраненные в более старой версии (в файлах cookie). Любые указания по выполнению этого с использованием HTML, Flex или Python будут очень полезны.

Спасибо

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Достаточно просто, вам просто нужна уникальная строка запроса в конце файла SWF:

<object width="550" height="400">
<param name="movie" value="somefilename.swf?key=<ADD RANDOM NUMBER HERE>">
<embed src="somefilename.swf?key=<ADD RANDOM NUMBER HERE>" width="550" height="400">
</embed>
</object>

Как вы создаете это случайное число, зависит от вас, но вам нужно использовать язык на стороне серверачтобы сделать это (как php) и номер, который я обычно использую, это просто отметка времени.

0 голосов
/ 29 апреля 2011

Идея произвольной строки запроса - это хороший способ убедиться, что SWF-файл загружается каждый раз, но это может быть совсем не то, что вы действительно хотите сделать. Особенно, если ваш SWF большой по размеру и его нужно обновлять только изредка. Я хотел бы иметь службу, которая выводит самый последний номер версии моего SWF. Вам придется придумать схему версий, которая работает для вас (например, это может быть номер сборки svn). Когда номер сборки SWF изменяется, новый SWF загружается в веб-браузер. Это может быть достигнуто, если ваш старый swf сделает сервисный вызов на ранней стадии процесса загрузки, если он обнаружит, что номер сборки swf новее, чем его собственный, он вызовет javascript в веб-браузер, вызывая перезагрузку swf, добавив новое значение на исходный URL (используя метод случайных строк запроса). Вызов javascript будет выполняться с использованием ExternalInterface.call (в Actionscript).

При таком подходе вы можете кэшировать ваш SWF-файл до тех пор, пока новый SWF-файл не будет доступен для загрузки, что сохранит пропускную способность ваших пользователей и нагрузку / пропускную способность вашего сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...