Мне лично больше всего нравится такой вариант: на старте приложение загружает список всех файлов и их версий. Выглядит примерно так:
Код:
{
"graphics/my_picture.jpg": 1,
"sounds/my_sound.mp3": 21,
"resources/my_resources.swf": 37
}
Для загрузки этого списка (еще его называют манифестом) допустимо применить трюк с добавлением случайного числа к url запроса.
После того как манифест загружен, приложение загружает ресурсы по таким вот URL:
Код AS3:
server.com / graphics / my_picture.1.jpg
server.com / sounds / my_sound.21.mp3
server.com / resources / my_resources.37.swf
То есть включаем номер версии в имя файла. Разумеется такие файлы должны быть на сервере. То есть при загрузке файла на сервер мы добавляем к его имени порядковый номер, и в этот же момент обновляем манифест, куда этот номер прописываем.
Таким образом клиент всегда получает либо версию из кеша, либо свежую версию, и никогда не грузит один и тот же файл дважды (как в варианте со случайным числом в URL)