Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   сохранение и чтение данных на клиенте (http://www.flasher.ru/forum/showthread.php?t=126703)

zafod 25.06.2009 09:36

сохранение и чтение данных на клиенте
 
Короткая тема и корткий вопрос.
Суть задачи: сцена предсталяет слбой карту местности, разбитую на 100 битмапов размером 80х80 px, которые отображаются в зависимости от положения viewport'а пользователя (остальные битмапы не отрисовываются), но естессно такае схема мягко говоря кушает много памяти.
Вопрос: логично ли те битмапы, которые не востребованы пользователем временно хранить на жестком диске, а по мере надобности подгружать во флешку, а не используемые в свою очередь скидывать на жесткий? В AS3 реализовать такую схему не составит труда, но как это скажется на производительности? Используются ли такие схемы?

KODERart 25.06.2009 13:06

Если приложение не AIR, забудьте про жесткий диск.

dimarik 25.06.2009 13:29

Цитата:

Сообщение от zafod (Сообщение 830571)
Используются ли такие схемы?

Обязательно. В standalone клиентах. Через тырнет браузер сам кеширует файлы. ТОже нет нужды заморачиваться. А вот что означает фраза "а не используемые в свою очередь скидывать на жесткий" я не догнал.

zafod 25.06.2009 22:07

dimarik : removeChild при невидимости( и достаточной удаленности битмапа от видимой области) запись его содержимого в локальное хранилище допустим и освобождение памяти. Просто с нагруженными битмапами плеер жрет через чур много памяти.
А я не догнал если честно : В standalone клиентах. Через тырнет браузер сам кеширует файлы. Как? Мне битмап приходит через сокет соединение, на клиенте он собирается по битам (точнее приходит zip архив), не думаю, что браузер его закеширует, или я не прав?
Может изначально у меня схема очень замороченная?

BlooDHounD 26.06.2009 00:51

по сокету гнать зип-архив, в котором лежит картинка ... да не, нормально :) не заморочено. бывает и хуже. например тупо запрашивают по ХТТП.

dimarik 26.06.2009 11:26

zafod, чем Вас не устроил вариант с передачей контента по HTTP? А по сокету гонять только данные.

zafod 26.06.2009 22:09

может я конечно не прав, но не вижу смысла в HTTP, если у меня открыто прямое сокет-соединение, гонять данные? - ну так я и гоняю, какая разница, что идет через сокет. Разработан протокол передачи( кривенький правда ), но получив оффсет зип архива он его привот к читабельному виду через класс-обертку Loader'a. Вообще конечно спорный вопрос, я согласен, вариантов куча.
Может вернемся к изначальному вопросу? Нормально скидывать не используемые битмапы через sharedObject на диск?

iflamberg 26.06.2009 22:27

sharedObject по-моему ограничен на 1мгбайт или что-то около того по умолчанию. Когда израсходованны - спрашивает у пользователя - расширить хранилище или нет. А больше препятствий по-моему нет.

zafod 26.06.2009 22:37

Цитата:

Сообщение от iflamberg (Сообщение 831202)
sharedObject по-моему ограничен на 1мгбайт или что-то около того по умолчанию. Когда израсходованны - спрашивает у пользователя - расширить хранилище или нет. А больше препятствий по-моему нет.

да-да именно так, и пользователь у меня говорит "да". Вопрос - на сколько упадет быстродействие? Потому как у меня получается постоянная (с перерыврм не более минуты) чтение - запись посредствам sharedObject. Соотв. класс для данной схемы практически готов, но не хочется тратить время на заведомо неправильную/медленную схему, поэтому прошу совета, может кто использовал что-то подобное

BlooDHounD 27.06.2009 00:54

правильная и быстрая схема - юзать ХТТП.

zafod 27.06.2009 07:19

Цитата:

Сообщение от BlooDHounD (Сообщение 831230)
правильная и быстрая схема - юзать ХТТП.

а почему, можете пояснить? и что конкретно имеется ввиду под этими словами?

BlooDHounD 27.06.2009 15:49

я даже не знаю как Вам объяснить. Вы построили схему, до которой додумается не каждый извращенец. теперь Вы хотите к это штуке прикрутить обыкновенное кэширование, которое уже есть на уровне системы при использовании ХТТП. юзать ShredObject нельзя, так как не каждый нажмёт "Да" на непонятном окошке ( а ведь там ещё и ползунком подвигать надо ), зато каждый скажет что всё тормозит. тоесть вместо заранее рабочей схемы, вы выбираете схему, которую:
1. надо реализовывать
2. которая жрёт дополнительные ресурсы, за счёт сокета, зипования, и т.д.
3. к которой невозможно отследить прогресс загрузки ( я так думаю )
4. которая не умеет самостоятельно кэшировать данные
5. которая зависит от действий и "не знаний" пользователя.

zafod 28.06.2009 23:42

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

BlooDHounD 29.06.2009 00:16

нельзя

zafod 29.06.2009 06:53

Все, проблема решена по другому. Тему можно выкидывать. В итоге можно сказать только одно - при получении тз проверяете его на соответсвие здравому смыслу.


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

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