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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.06.2011, 09:41
TimID вне форума Посмотреть профиль Отправить личное сообщение для TimID Посетить домашнюю страницу TimID Найти все сообщения от TimID
  № 1  
Ответить с цитированием
TimID
[+1 18.01.09]
 
Аватар для TimID

Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
Tools DataGrid + PHP + Большая таблица. Помогите, направьте...

Который день пытаюсь разобраться со скрещиванием DataGrid и HTTPService.
Все примеры используют AMF, JSON или "маааленькую" табличку сериализованную в XML (и тогда ее как раз можно получать из HTTPService).

Мне же нужно организовать просмотр очень большой таблицы - 40-60 столбцов на 45-50 строк (1й вариант - расписание занятий) и 7-10 столбцов на 10 тыс строк (2й вариант - список студентов).
Пересылать всю таблицу - бессмысленно, нужно работать постранично. Но "листание" как в HTML-like подходе, очевидно, не годится - нужно скроллирование.
Использовать "нативные" сервисы Flex (AMF) я тоже не могу, поскольку мне нужно шифровать данные при пересылке (Закон о защите персональных данных требует).

Подскажите пример (статью) где описывается что-то похожее.

PS. Руководства Adobe читал, там нет ничего путного про большие объемы данных.
PPS. Приложение будет для Air (может это важно).

Старый 01.06.2011, 13:35
saprahan вне форума Посмотреть профиль Отправить личное сообщение для saprahan Найти все сообщения от saprahan
  № 2  
Ответить с цитированием
saprahan

Регистрация: Mar 2011
Сообщений: 48
Цитата:
Сообщение от TimID Посмотреть сообщение
Который день пытаюсь разобраться со скрещиванием DataGrid и HTTPService.
Все примеры используют AMF, JSON или "маааленькую" табличку сериализованную в XML (и тогда ее как раз можно получать из HTTPService).

Мне же нужно организовать просмотр очень большой таблицы - 40-60 столбцов на 45-50 строк (1й вариант - расписание занятий) и 7-10 столбцов на 10 тыс строк (2й вариант - список студентов).
Пересылать всю таблицу - бессмысленно, нужно работать постранично. Но "листание" как в HTML-like подходе, очевидно, не годится - нужно скроллирование.
Использовать "нативные" сервисы Flex (AMF) я тоже не могу, поскольку мне нужно шифровать данные при пересылке (Закон о защите персональных данных требует).

Подскажите пример (статью) где описывается что-то похожее.

PS. Руководства Adobe читал, там нет ничего путного про большие объемы данных.
PPS. Приложение будет для Air (может это важно).
Вам AMF и не нужен. Требуется live подгрузка при скролле.
1) В серверном php приложении пишете два метода: getStudentsRange(startIndex, length), getStudentsCount().
2) На клиенте возможные варианты.
а) Во Flash Builder точно можно через ui задепендить грид(провайдер+скролл) на такую динамическую загрузку. Сам подобного не делал, но кто был на евангилистической Flex конференции в МГУ в прошлом году, тот помнят. Там это было преподнесено с WoW эффектом. Причем на php тоже.
б) Просто закодить. Заводите инстанс ArrayCollection'a, заполняете его пустыми элементами по getStudentsCount. При скролле грида(позиция скролла, количество видимых элементов, эвенты скролла - все известно) подгружаете ваших студентов и пишите их в провайдер.

И самое главное: AMF или не AMF абсолютно не важно. Не понимаю почему его отсутствие вас пугает.

Старый 01.06.2011, 15:31
TimID вне форума Посмотреть профиль Отправить личное сообщение для TimID Посетить домашнюю страницу TimID Найти все сообщения от TimID
  № 3  
Ответить с цитированием
TimID
[+1 18.01.09]
 
Аватар для TimID

Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
Спасибо, saprahan
Примерно так (как в варианте b) и предполагал сделать. Но "пугает" необходимость коллекции с фиктивными данными. Придется либо последовательно подгружать таки всю таблицу, либо делать запрос на каждое "срабатывание" скролла - то есть повторно (может быть) запрашивать одни и те же данные.
Фактически, нужна ведь специальная надстройка над коллекцией, которая будет иметь страничную организацию с признаком "загружено/незагружено". И прелоадингом "соседних слотов" в момент простоя соединения.
Убиться можно

А насчет "а" - может где-то есть скринкаст конференции?

Старый 01.06.2011, 16:38
saprahan вне форума Посмотреть профиль Отправить личное сообщение для saprahan Найти все сообщения от saprahan
  № 4  
Ответить с цитированием
saprahan

Регистрация: Mar 2011
Сообщений: 48
Цитата:
Сообщение от TimID Посмотреть сообщение
Спасибо, saprahan
Примерно так (как в варианте b) и предполагал сделать. Но "пугает" необходимость коллекции с фиктивными данными. Придется либо последовательно подгружать таки всю таблицу, либо делать запрос на каждое "срабатывание" скролла - то есть повторно (может быть) запрашивать одни и те же данные.
Фактически, нужна ведь специальная надстройка над коллекцией, которая будет иметь страничную организацию с признаком "загружено/незагружено". И прелоадингом "соседних слотов" в момент простоя соединения.
Убиться можно
Не пугайтесь, все совсем несложно. Вот туториал данного кейса именно для Flash Builder + php
http://help.adobe.com/en_US/Flex/4.0...c9b6-8000.html

Старый 01.06.2011, 18:16
TimID вне форума Посмотреть профиль Отправить личное сообщение для TimID Посетить домашнюю страницу TimID Найти все сообщения от TimID
  № 5  
Ответить с цитированием
TimID
[+1 18.01.09]
 
Аватар для TimID

Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
Пошел рыться.
(Эх, опять английский, и где вы годы мои молодые...)
... читаю ...
... читаю ...
АААА, все плохо.
В примере все равно сервис. Ничего не поменялось фактически (по сравнению с AMF).

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


Последний раз редактировалось TimID; 01.06.2011 в 18:26.
Старый 01.06.2011, 21:55
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
AMF - просто способ записи, так что шифровать можете что XML что AMF - разницы как бы никакой...
У ArrayCollection и ей подобных специально заготовлена возможность хранения "фиктивных данных" т.е. на случай когда данные еще не пришли, но известно, что они должны в принципе быть. Можно ей доверять, а можно реализовать такую же штуку самому - например, хранить дополнительный список с парами начало-конец, который бы отражал "степень загруженности" коллекции. Перед тем, как делать запрос, сначала проверять в этом списке, а не загружено ли то что нужно уже, или может частично загружено. После ответа от сервиса - обновлять список. Если сильно хочется использовать это с флексовыми компонентами, и есть время заморочится, я бы смотрел в сторону либо раширять ArrayList либо имплементить ICollectionView - хотя, фреймворк построен наполовину из отходов и вторсырья... так что, если есть еще больше времени, то лучше написать вообще самому.
__________________
Hell is the possibility of sanity

Старый 02.06.2011, 14:59
TimID вне форума Посмотреть профиль Отправить личное сообщение для TimID Посетить домашнюю страницу TimID Найти все сообщения от TimID
  № 7  
Ответить с цитированием
TimID
[+1 18.01.09]
 
Аватар для TimID

Регистрация: Sep 2003
Адрес: Москва
Сообщений: 34
Ув, wvxvw, а можно пример, в котором поток AMF шифровался - расшифровывался бы.
Желательно для связки PHP - AMFPHP - encrypt - internet - decrypt - Flex - DataGrid.
Я искал-искал, и не нашел.

А такой пример решил бы все мои проблемы

Старый 02.06.2011, 16:10
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 8  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
А почему листание html-лайк не годится? Ведь просто же.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 02.06.2011, 19:12
saprahan вне форума Посмотреть профиль Отправить личное сообщение для saprahan Найти все сообщения от saprahan
  № 9  
Ответить с цитированием
saprahan

Регистрация: Mar 2011
Сообщений: 48
Цитата:
Сообщение от DaFive Посмотреть сообщение
А почему листание html-лайк не годится? Ведь просто же.
Совсем не соответствует паттернам RIA и энтерпрайза. Только для html'a оно и годится.

Старый 02.06.2011, 21:25
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Самый примитивный вариант: покупаете лицензию SSL.
А любая самостоятельная реализация шифрования на клиенте спасает только от man-in-the-middle аттак. От чего, собственно можно защитится и проще. Например ксорить все данные с каким-то заранее извесным числом. Рассчитывать контрольную сумму и ее же высылать и т.п. Естесственно, она не спасет в случае, если потенциальная атака будет от лица пользователя. Но тут и разницы как-бы никакой, что XML, что AMF опять же.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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