Передача больших массивов с сервера на клиент в GWT - PullRequest
0 голосов
/ 22 августа 2011

Я пытаюсь передать большой двумерный массив (17955 X 3) с моего сервера клиенту с помощью асинхронных вызовов RPC. Это занимает очень много времени, что особенно плохо, потому что данные необходимы для инициализации приложения. Я читал, что использование объекта JSON может быть быстрее, но я не уверен, как выполнить преобразование в Java, так как я довольно плохо знаком с языком и GWT, и я не знаю, значительна ли разница в скорости , Я также где-то читал, что могу заархивировать данные, но я читаю это только на форуме, и я не уверен, возможно ли это на самом деле, потому что я не мог найти информацию для этого в другом месте. Есть ли способ передать большие объемы данных с сервера на клиент? Спасибо за ваше время.

Ответы [ 3 ]

0 голосов
/ 22 августа 2011

Я бы рекомендовал пересмотреть ваш дизайн, если вашему приложению требуется такой большой объем данных для инициализации.

0 голосов
/ 22 августа 2011

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

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

Вы можете подумать:

Разделение данных:

Как ваш пользователь справится с большим количеством данных.Вашему пользователю, вероятно, понадобится какая-то помощь пользовательского интерфейса, чтобы иметь возможность работать с такими огромными данными.Если вы собираетесь использовать разбиение на страницы, вкладки или другие средства для разделения данных для потребления пользователем, почему бы не загружать данные по требованию.Например, вы можете загрузить одну страницу записей, если вы используете сетку подкачки, или вы можете загрузить записи на одну вкладку, если вы собираетесь использовать вкладки.Аналогично, если вы хотите разрешить фильтрацию записей, вы можете установить фильтр по умолчанию после загрузки, чтобы данные оставались минимальными.

Обобщение данных:

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

0 голосов
/ 22 августа 2011

Читать эту статью о добавлении возможностей JSON в GWT.Что касается сжатия , эта статья объясняет gzipping с GWT.

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

...