Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Persistent entities на клиентской стороне GWT 
:(
    Опции темы
ivg
Дата 28.4.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Интересует best practices по сабжу. Кто как делает?
Вкратце суть вопроса: Классы сущностей имеют взаимосвязи между собой и в некоторых случаях проход по прямым ссылкам может охватывать значительный объём информации. В Hibernate, например, проблема решается просто - данные извлекаются тогда, когда понадобятся. Для этого в рантайме классы сущностей могут быть заменены на прокси-классы для перехвата вызовов методов, используемых для получения связанных сущностей и т. д.
Вопрос: Каким образом организовать передачу информации, содержащуюся в объектах классов сущностей на клиентскую сторону GWT с помощью GWT-RPC, чтобы избежать "глубокой" сериализации, и, самое главное, SerializationException при попытках сериализации Hibernate'овских проксей?
PM MAIL   Вверх
intr
Дата 28.4.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.12.2005

Репутация: 2
Всего: 2



Может быть стоит взглянуть на эту штуку - http://noon.gilead.free.fr/gilead/
--------------------
Исследователь бытия и по совместительству Java-developer
PM MAIL WWW Skype GTalk   Вверх
ivg
Дата 28.4.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(intr @  28.4.2009,  20:51 Найти цитируемый пост)
Может быть стоит взглянуть на эту штуку - http://noon.gilead.free.fr/gilead/ 

Ага, спасибо. Покопаю.
PM MAIL   Вверх
COVD
Дата 28.4.2009, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



А если на клиенте поток, перерисовывающий экран (в свинге это EventDispatchThread) обращается к ссылке, которая не инициализирована ("lazy" инициализация), то, очевидно, должен быть запрос по сети на доставку недостающих данных. Поток ждет ответа сервера? GUI замораживается?  
PM MAIL   Вверх
ivg
Дата 28.4.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(COVD @  29.4.2009,  00:08 Найти цитируемый пост)
Поток ждет ответа сервера? GUI замораживается?

Нет. GWT, как и большинство AJAX приложений для доступа к серверу использует асинхронные вызовы XMLHttpRequest
PM MAIL   Вверх
COVD
Дата 29.4.2009, 03:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Понятно. Спасибо. Если позволите, еще вопрос. Типичная форма представления данных - таблица. Показали первые 10 строк. Пользователь сделал покрутку. Надо загрузить и показать следующие 5 строк. Очевидно, что предпочтительнее послать один запрос (а не 5) и по получении всех данных дать одну команду (а не 5) на перерисовку. Проработаны ли в Hibernate / GWT такие ситуации?  Или это искусство программиста?  

Это сообщение отредактировал(а) COVD - 29.4.2009, 03:45
PM MAIL   Вверх
ivg
Дата 29.4.2009, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(COVD @  29.4.2009,  05:40 Найти цитируемый пост)
Проработаны ли в Hibernate / GWT такие ситуации?

Строго говоря, Hibernate тут не к месту упомянут, разве только если иметь ввиду возможность выборки данных, ограниченной некоторым диапазоном строк. В Hibernate такая возможность имеется, однако эффективность реализации этой фичи зависит от СУБД/драйвера.
Что же касается GWT, то его основная фича - это возможность реализовать браузерный JavaScript код на языке Java. Работа с элементами UI напоминает swing, но по сути, все операции по изменению UI сводятся к добавлению/удалению/изменению кодом JavaScript узлов в DOM Tree. Никаких paint()'ов там нет.
Я не совсем понял вопрос, но думаю что если бы речь шла об удалённом awt/swing клиенте, то ответ, о том проработано или нет, был бы таким же.
В расширениях GWT есть готовые UI компоненты, позволяющие организовать постраничный просмотр, а вот с прокруткой не помню, может и есть.

Цитата(COVD @  29.4.2009,  05:40 Найти цитируемый пост)
Очевидно, что предпочтительнее послать один запрос (а не 5) и по получении всех данных дать одну команду (а не 5)

совершенно не очевидно, если не знать конкретные цифры о кол-ве строк. Поэтому, видимо, всё таки, ответ будет:
Цитата(COVD @  29.4.2009,  05:40 Найти цитируемый пост)
это искусство программиста

PS: оффтопим smile 
PM MAIL   Вверх
COVD
Дата 29.4.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.