Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web图表,服务器端还是客户端?_Java_Jsp_Charts - Fatal编程技术网

Java Web图表,服务器端还是客户端?

Java Web图表,服务器端还是客户端?,java,jsp,charts,Java,Jsp,Charts,我正在尝试确定我们是否最好在服务器端呈现图表,并将它们作为图像推送到浏览器,或者使用javascript图表库在客户端绘制图表 我正在查看JFreeChart和Dojo图表库,我的目标是一个在JBoss中运行的现有JSP站点 是否有人对此有经验,能够指出每种方法的优点/缺点 目前,除非数据集很大,否则客户端渲染的效率要高得多。我想推荐一个我编写的库:这是一个服务器端图表解决方案。以下是一些功能: 几乎支持的所有功能 隐藏创建URL参数的丑陋细节,这些参数是与Google图表API通信所必需的

我正在尝试确定我们是否最好在服务器端呈现图表,并将它们作为图像推送到浏览器,或者使用javascript图表库在客户端绘制图表

我正在查看JFreeChart和Dojo图表库,我的目标是一个在JBoss中运行的现有JSP站点

是否有人对此有经验,能够指出每种方法的优点/缺点


目前,除非数据集很大,否则客户端渲染的效率要高得多。

我想推荐一个我编写的库:这是一个服务器端图表解决方案。以下是一些功能:

  • 几乎支持的所有功能
  • 隐藏创建URL参数的丑陋细节,这些参数是与Google图表API通信所必需的
  • 可以集成到任何支持Internet的Swing或web应用程序环境中(JSP/Servlet、GWT、SpringMVC等)
  • 100%纯核心Java解决方案。不需要特殊的图形库等
  • 超级可扩展和轻量级。只需要一个160Kb的jar和一个Internet连接
  • 有据可查
  • 最重要的是,它是免费的
这里有一些。另外,请查看


我举了一个将这项技术整合到SpringMVC(使用JSP)应用程序的例子。

JFreeChart已经建立了很好的基础,并且已经存在了很多年。我在以前的项目中使用过它,效果非常好。它可以从富客户端应用程序或web应用程序中使用。这两种方案都有示例应用程序。如果您正在分发应用程序,那么它也是GPL许可的

在服务器端执行此操作的优点是,您可以将生成的图表呈现为图像,而不必担心跨浏览器兼容性。我已经通过从Servlet和Struts呈现来合并JFreeChart,效果非常好


我不能支持Dojo图表,因为它相当新

第一个决定因素应该是您是否需要禁用JavaScript才能访问图表。如果您这样做或认为您可能会这样做,它会完全排除JavaScript。

我看到两边都有很多有效的观点,但我喜欢做图表客户端的一件事,就是能够与图表进行一些交互。使用Dojo图表库,您可以使用多种图表交互方法,例如
dojox.charting.action2d.Highlight
dojox.charting.action2d.Tooltip
。你也可以让你的图表动态更新而不需要刷新,我可以看到一些情况下,这可能是有用的


当然,这一切都取决于您,但我喜欢图表,我可以更好地与从服务器渲染的图像进行交互,我想很多人都同意我的观点。

我建议您确定性能/资源调配需求,并从中做出决定。如果您希望有大量的客户机,每个客户机都需要大量的图表,这些图表可能需要定期更新,那么将处理工作转移到客户机上可能是更好的解决方案。正如jesper提到的,您还可以直接与客户机上的图表进行更多的交互,而不需要为更复杂的功能回调服务器

如果图表的通用模型很简单(例如,服务器动态生成静态图表,不需要更新),并且客户端数量较少,则可以使用硬件更好地提高性能。在这种情况下,服务器端可能就足够了


以后很难实现可伸缩性和性能。如果您从一开始就有可能缓解这种情况,那么您应该这样做,因为随着未来用户决定他们需要更快/更好的功能,当前的使用模型经常会发生变化。

如果使用javascript,您可能还需要服务器端解决方案,以防javascript关闭

如果您使用不引人注目的javascript,那么如果启用javascript,它可以将服务器端解决方案的链接更改为使用javascript图表工具

我发现最好在服务器端使用php,因为gdlib很好,我的tomcat服务器有时会抛出错误,因为即使在headless模式下运行,也无法连接到x11服务器


有很多可能的解决方案,或者你可以自己做。绘图并不难,这取决于你需要什么。例如,如果您可以使用svg,那么这将允许使用动画图表,但需要为许多浏览器提供插件。

看起来很有趣,我们偏离google api的原因是它(似乎)需要连接到google和internet,这很糟糕,因为我们的应用程序通常必须在没有外部连接的内部网中运行。没错。没有互联网连接,没有谷歌图表。它很好地解决了一些制图问题,但不是全部。