Веб-чартинг, на стороне сервера или на стороне клиента? - PullRequest
6 голосов
/ 20 марта 2009

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

Я смотрю на библиотеки JFreeChart и Dojo Charting, моя цель - существующий сайт JSP, который работает в JBoss.

Есть ли у кого-нибудь опыт с этим, кто мог бы указать на достоинства / недостатки каждого.

В настоящий момент я вижу, что рендеринг на стороне клиента выглядит намного более эффективным, если только набор данных не является огромным.

Ответы [ 6 ]

7 голосов
/ 20 марта 2009

Я хотел бы порекомендовать библиотеку, которую я написал: charts4j , которая представляет собой решение для построения диаграмм на стороне сервера. Вот некоторые особенности:

  • Поддерживает почти все функции Google Chart API
  • Скрывает уродливые детали создания параметров URL, которые необходимы для взаимодействия с Google Chart API
  • Может быть встроен в любую среду Swing или веб-приложений с поддержкой Интернета (JSP / Servlet, GWT, Spring MVC и т. Д.)
  • 100% чистое ядро ​​Java-решение. Нет необходимости в специальных графических библиотеках и т. Д.
  • Супер-масштабируемый и легкий. Требуется только одна банка объемом 160 КБ и подключение к Интернету
  • Хорошо задокументировано
  • Лучше всего, это БЕСПЛАТНО!

Вот несколько отзывов . Также ознакомьтесь с FAQ .

У меня есть пример включения этой технологии в приложение Spring MVC (с использованием JSP) в моем блоге .

2 голосов
/ 11 мая 2009

Я бы порекомендовал определить ваши потребности в производительности / обеспечении и принять решение оттуда. Если вы ожидаете большого количества клиентов, для каждого из которых требуется большое количество диаграмм, которые, возможно, потребуется периодически обновлять, выгрузка обработки на клиенты, вероятно, будет лучшим решением. Как упоминал Джеспер, вы также сможете больше взаимодействовать непосредственно с диаграммами на клиенте, вместо того, чтобы требовать обратных вызовов к серверу для более сложной функциональности.

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

Масштабируемость и производительность могут быть сложно реализовать позже в будущем. Если у вас есть возможность смягчить это с самого начала, вы должны это сделать, поскольку текущие модели использования так часто меняются, поскольку будущие пользователи решают, что им нужна более быстрая / лучшая функциональность.

0 голосов
/ 11 мая 2009

Если вы используете javascript, вам также может понадобиться решение на стороне сервера, если javascript отключен.

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

Я считаю, что лучше всего использовать php на стороне сервера, так как gdlib хорош, и мой сервер tomcat иногда выдает ошибки из-за невозможности подключения к серверу x11, даже если он работает в автономном режиме.

Есть много возможных решений, или вы можете сделать это самостоятельно. Графика не сложно, это зависит от того, что вам нужно. Например, если вы можете использовать svg, это позволит использовать анимированные диаграммы, но для многих браузеров потребуется плагин.

0 голосов
/ 11 мая 2009

Я вижу много правильных точек с обеих сторон, но одна вещь, которая мне нравится в работе над графиком на стороне клиента, - это возможность взаимодействовать с графиком. Используя библиотеку диаграмм Dojo, у вас есть различные методы взаимодействия с диаграммами, такие как dojox.charting.action2d.Highlight и dojox.charting.action2d.Tooltip. Вы также можете настроить динамическое обновление диаграмм без необходимости обновления, и я вижу некоторые ситуации, в которых это может быть полезно.

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

0 голосов
/ 26 марта 2009

Первый решающий фактор должен заключаться в том, нужны ли вам диаграммы для доступа с отключенным JavaScript. Если вы делаете или думаете, что можете, это полностью исключает JavaScript.

0 голосов
/ 26 марта 2009

JFreeChart очень хорошо зарекомендовал себя и существует уже много лет. Я использовал его в предыдущих проектах, и он работал очень хорошо. Его можно использовать из приложения расширенного клиента или из веб-приложения. У него есть примеры приложений для обоих сценариев. Если вы распространяете свое приложение, оно также лицензируется по лицензии GPL.

Преимущества выполнения этого на стороне сервера заключаются в том, что вы можете отобразить полученную диаграмму в виде изображения и не беспокоиться о совместимости с различными браузерами. Я включил JFreeChart путем рендеринга из сервлета и из Struts, работает очень хорошо.

Я не могу говорить о графике Додзё, так как он достаточно новый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...