Форум 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=149910)

.true 03.02.2011 02:25

Передача большого кол-ва данных (даты и числа) в ролик, рисующий графики
 
Уважаемые коллеги!
Столкнулся с такой проблемой:
Есть ролик, который рисует график (x - дата; y - изменяющиеся параметры, фактически целые числа).
При движении колесиком мыши график сжимается/растягивается по абсциссе(дате).
Минимальный промежуток - час, максимальный - года.

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

Изначально пришел в голову такой xml:
Код:

<stats>
    <year number=2011>
        <month number=1>
            <day number=2>
                <hour number=14>
                    <guests>14</guests>
                    <members>25</members>
                </hour>
            </day>
        </month>
    </year>   
</stats>

Это user-friendly, что очень хотелось бы. Но в году 8760 часов, это получается безумно громоздко.
Далее, возникла идея использовать xml такого вида:
Код:

<stats>
    <hour timestamp=xxxxxxx>
        <guests>24</guests>
        <members>50</members>
    </hour>
</stats>

он будет занимать чуть меньше места, но все равно будет громоздким.
Далее, начал думать в сторону JSON, но оказалось что во Flash Player нет нативной поддержки этой технологии (как работают библиотеки third-party я, к сожалению, не знаю)

Предпоследний вариант - за обычной строкой с разделителями. Занимать будет меньше места - но чтото мне подсказывает что на парсинг будет уходить уйма времени.

Последний вариант - передавать переменные прямо со страницы. но это около 300 кб только на чистой странице!!

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

iNils 03.02.2011 02:49

Я бы сократил до
Код:

<stats>
    <record timestamp="xxxxxxx" guests="24" members="50"/>
</stats>

Никогда не понимал мании писать данные в отдельных нодах, если на то нет необходимости.

GBee 03.02.2011 09:30

Или уж совсем, если данных ООООчень много
Код AS3:

<s>
    <r t="xxxxxxx" g="24" m="50"/>
</s>

Добавлено через 8 минут
или так :о)
Код AS3:

<s>
    <r d="xxxxxxx,24,50"/>
</s>


easy.proger 03.02.2011 11:06

или так
Цитата:

<s data="xxxxxxx,24,50|yyyyyy,25,51|zzzzzzz,26,52"/>

Hauts 03.02.2011 11:13

Или...
Код:

<s d='xxxxxxx,24,50|yyyyyy,25,51|zzzzzzz,26,52'>

easy.proger 03.02.2011 11:28

Или так
Цитата:

header
начальный timeStamp
Data
разница между стартовым timeStamp и след timeStamp,24,50
разница между стартовым timeStamp и след timeStamp,25,51
разница между стартовым timeStamp и след timeStamp,26,52
etc…
И хранить это все в бинарнике %)

Это !user-friendly, но не кто не мешает написать утилиту просмотра таких данных )

Xero201 03.02.2011 11:36

если заносить информацию в один узел - получится большой избыток информации, что может привести ко всякими бякам (аномалиям), при добавлении, изменении и удалении узлов. + возможно более длительная обработка, т.к. у каждого узла каждый раз узнавать и год, и месяц, и день:
Если это не устраивает можно делать так:
&....& - day, а номер пары && по счету - day number
xx,xx - guests, members, а номер пары по счету = hours number
если в определенный момент статистики не было можно записывать пустые пары && или ||
Код:

<stats>
    <year number=2011>
        <month info="&0,0|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10|11,11|12,12|13,13|14,25|15,15|16,16|17,17|18,18|19,19|20,20|21,21|22,22|23,23|&&....&&....&" />
        </month>
    </year>   
</stats>

или при желании еще сильнее, заменив месяцы каким-нибудь ##, а года ~~, но это уже перебор)

.true 03.02.2011 16:24

Пожалуй, пока остановлюсь на варианте iNils, в любом случае из файла xml можно удалить лишние пробелы/переносы строк. Если все-таки будет тормозить то буду думать дальше.

Тут же следом возникает вопрос о том, сколько времени уйдет на парсинг этой кучи... и отрисовку.. но это позже))
большое спасибо за советы и участие!


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

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