2009-03-20 4 views
6

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

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

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

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

ответ

7

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

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

Вот testimonials. Также проверьте FAQ.

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

+0

Выглядит интересно, причина, по которой мы отклонились от google api, заключается в том, что она (по-видимому) требует подключения к Google и интернету, что плохо, потому что наши приложения часто запускаются в интрасетях без подключения к внешней стороне. –

+0

Правильно. Нет подключения к Интернету, нет графиков Google. Он очень хорошо решает некоторые проблемы с графикой, но не все. –

0

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

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

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

0

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

0

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

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

2

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

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

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

0

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

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

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

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

Смежные вопросы