![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 18.01.09]
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
|
Который день пытаюсь разобраться со скрещиванием DataGrid и HTTPService.
Все примеры используют AMF, JSON или "маааленькую" табличку сериализованную в XML (и тогда ее как раз можно получать из HTTPService). Мне же нужно организовать просмотр очень большой таблицы - 40-60 столбцов на 45-50 строк (1й вариант - расписание занятий) и 7-10 столбцов на 10 тыс строк (2й вариант - список студентов). Пересылать всю таблицу - бессмысленно, нужно работать постранично. Но "листание" как в HTML-like подходе, очевидно, не годится - нужно скроллирование. Использовать "нативные" сервисы Flex (AMF) я тоже не могу, поскольку мне нужно шифровать данные при пересылке (Закон о защите персональных данных требует). Подскажите пример (статью) где описывается что-то похожее. PS. Руководства Adobe читал, там нет ничего путного про большие объемы данных. PPS. Приложение будет для Air (может это важно). |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 48
|
Цитата:
1) В серверном php приложении пишете два метода: getStudentsRange(startIndex, length), getStudentsCount(). 2) На клиенте возможные варианты. а) Во Flash Builder точно можно через ui задепендить грид(провайдер+скролл) на такую динамическую загрузку. Сам подобного не делал, но кто был на евангилистической Flex конференции в МГУ в прошлом году, тот помнят. Там это было преподнесено с WoW эффектом. Причем на php тоже. б) Просто закодить. Заводите инстанс ArrayCollection'a, заполняете его пустыми элементами по getStudentsCount. При скролле грида(позиция скролла, количество видимых элементов, эвенты скролла - все известно) подгружаете ваших студентов и пишите их в провайдер. И самое главное: AMF или не AMF абсолютно не важно. Не понимаю почему его отсутствие вас пугает. |
|
|||||
|
[+1 18.01.09]
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
|
Спасибо, saprahan
Примерно так (как в варианте b) и предполагал сделать. Но "пугает" необходимость коллекции с фиктивными данными. Придется либо последовательно подгружать таки всю таблицу, либо делать запрос на каждое "срабатывание" скролла - то есть повторно (может быть) запрашивать одни и те же данные. Фактически, нужна ведь специальная надстройка над коллекцией, которая будет иметь страничную организацию с признаком "загружено/незагружено". И прелоадингом "соседних слотов" в момент простоя соединения. Убиться можно ![]() А насчет "а" - может где-то есть скринкаст конференции? |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 48
|
Цитата:
http://help.adobe.com/en_US/Flex/4.0...c9b6-8000.html |
|
|||||
|
[+1 18.01.09]
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
|
Пошел рыться.
(Эх, опять английский, и где вы годы мои молодые...) ... читаю ... ... читаю ... АААА, все плохо. В примере все равно сервис. Ничего не поменялось фактически (по сравнению с AMF). Проясню про "боязнь AMF и иже с ними": Плохо то, что я не могу повлиять на процесс взаимодействия - зашифровать данные, отказаться от загрузки, отрисовать свой контекст в гриде и т.п. Последний раз редактировалось TimID; 01.06.2011 в 18:26. |
|
|||||
|
Modus ponens
|
AMF - просто способ записи, так что шифровать можете что XML что AMF - разницы как бы никакой...
У ArrayCollection и ей подобных специально заготовлена возможность хранения "фиктивных данных" т.е. на случай когда данные еще не пришли, но известно, что они должны в принципе быть. Можно ей доверять, а можно реализовать такую же штуку самому - например, хранить дополнительный список с парами начало-конец, который бы отражал "степень загруженности" коллекции. Перед тем, как делать запрос, сначала проверять в этом списке, а не загружено ли то что нужно уже, или может частично загружено. После ответа от сервиса - обновлять список. Если сильно хочется использовать это с флексовыми компонентами, и есть время заморочится, я бы смотрел в сторону либо раширять ArrayList либо имплементить ICollectionView - хотя, фреймворк построен наполовину из отходов и вторсырья... так что, если есть еще больше времени, то лучше написать вообще самому.
__________________
Hell is the possibility of sanity |
|
|||||
|
[+1 18.01.09]
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
|
Ув, wvxvw, а можно пример, в котором поток AMF шифровался - расшифровывался бы.
Желательно для связки PHP - AMFPHP - encrypt - internet - decrypt - Flex - DataGrid. Я искал-искал, и не нашел. А такой пример решил бы все мои проблемы ![]() |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 48
|
Совсем не соответствует паттернам RIA и энтерпрайза. Только для html'a оно и годится.
|
|
|||||
|
Modus ponens
|
Самый примитивный вариант: покупаете лицензию SSL.
А любая самостоятельная реализация шифрования на клиенте спасает только от man-in-the-middle аттак. От чего, собственно можно защитится и проще. Например ксорить все данные с каким-то заранее извесным числом. Рассчитывать контрольную сумму и ее же высылать и т.п. Естесственно, она не спасет в случае, если потенциальная атака будет от лица пользователя. Но тут и разницы как-бы никакой, что XML, что AMF опять же.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|