Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.12.2014, 21:16
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 1  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
По умолчанию Как ущнать закеширован ли SWF перед загрузкой?

Добрый день,
Имеется ли возможность узнать закеширован ли SWF по конкретному URL или нет?
Весь интернет облазил, нашел почти нужное решение через JS, но только для картинок:
Код:
function cached(url)
{
       var test = document.createElement("img");
       test.src = url;
       return test.complete || test.width+test.height > 0;
}
HTTP статус видел советовали проверять, но он 200 (а вроде должен быть 304 в случаях кешированного ответа).
Никто не сталкивался? Посоветуйсте, пожалуйста.

Старый 02.12.2014, 22:09
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Была похожая задача, проверять наличие посл версии софта и если версия новая - обновлять. Тут у вас смысл приблизительно похож. Решений, кроме как грузить XML с версией до загрузки внтуренних ресурсов - не нашлось. То есть основная флешка, все равно не проверяется, только те, что подгружаются. Думаю стоит обратить внимание на php - там наверняка можно узнать о кеше, при запуске и передать во флешварс нужную переменную.
__________________
Марк Tween

Старый 03.12.2014, 20:36
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 3  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Из флеша этого никак не узнать. И не нужно вам этого знать.
Вы скорее всего, неправильно выбрали способ для решения своей задачи. Опишите вашу задачу, вам предложат правильное решение.
__________________
Дети не должны знать о своих родителях

Старый 04.12.2014, 10:13
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
а зачем это узнавать? Просто можно при загрузке передавать в ссылке случайный параметр, и флешка будет каждый раз грузиться заново

Старый 04.12.2014, 14:31
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 5  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
а зачем это узнавать? Просто можно при загрузке передавать в ссылке случайный параметр, и флешка будет каждый раз грузиться заново
Костя вообще то есть правила хорошего тона в этом вопросе, смотри : я захожу в твою игру, которая весит скажем 50 мб, грузится не быстро, если интернет не очень, в конечном итоге это начинает злить, что каждый раз такая долгая загрузка, - ты начинаешь кешировать флешку, а по скольку флешка кеширована, ты не можешь поставить НОВУЮ версию для пользователя с кешем.
Надо прибегать к php - там явно все это описывается как работать с кешем
__________________
Марк Tween

Старый 04.12.2014, 14:44
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 6  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Мне лично больше всего нравится такой вариант: на старте приложение загружает список всех файлов и их версий. Выглядит примерно так:
Код:
{
    "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)
__________________
...вселенская грусть

Старый 04.12.2014, 15:23
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Глуми, а разве не проще не использовать файлы вида "<name>.<version>.<ext>", а добавлять к URL версию файла, полученную из "манифеста"?
Цитата:
http://host/file.ext?25
Браузер возьмет либо из кэша, если с такого URL Была загрузка, либо подумает, что он новый.
__________________
тут я

Старый 04.12.2014, 18:33
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 8  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Еще выгоднее вставлять не версии, а какие-нибудь хеши от файла, например, crc32, тогда возможно, что у Вас в игре, допустим, какая-нибудь временная акция, и нужно обновить картинку, а через некоторое время акция проходит, и нужно вернуть то что было до этого.

Старый 04.12.2014, 20:55
Xpb7 вне форума Посмотреть профиль Отправить личное сообщение для Xpb7 Найти все сообщения от Xpb7
  № 9  
Ответить с цитированием
Xpb7

Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
Ребят, спасибо за овтеты. Задача такая:
Есть некий flash wrapper, который грузит в сбея основную игру ( другую swf ), когда игра загрузилась, логгируется время её загрузкы. Для аналитиков важно знать была ли игра загружена из кеша ( что напрямую влияет на время загрузки ) или нет.

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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