我正在努力确定我们是否更好地渲染图表服务器并将它们作为图像推送到浏览器或使用javascript图表库来绘制客户端图表。
我正在查看JFreeChart和Dojo Charting库,我的目标是在JBoss中运行的现有JSP站点。
有没有人有任何经验可以指出每个人的优点/缺点。
目前我看到客户端呈现效率更高,除非数据集是巨大的。
答案 0 :(得分:7)
我想推荐一个我写的库:charts4j这是一个服务器端图表解决方案。以下是一些功能:
以下是一些testimonials。另请查看FAQ。
我有一个将此技术合并到my blog上的Spring MVC(使用JSP)应用程序的示例。
答案 1 :(得分:2)
我建议您确定性能/配置需求并从那里做出决定。如果您期望大量客户端,每个客户端都需要大量可能需要定期更新的图表,那么将处理卸载到客户端可能是更好的解决方案。正如jesper所提到的,您还可以直接与客户端上的图表进行更多交互,而不是要求回调服务器以获得更复杂的功能。
如果您的图表的一般使用模型很简单(例如,服务器即时生成静态图表,无需更新),并且客户端数量很少,那么使用硬件可能会很好更好地提高性能。在这种情况下,服务器端可能就足够了。
可扩展性和性能可能很难在以后实现。如果您有可能从一开始就减轻这种影响,那么您应该这样做,因为当前的使用模型经常会发生变化,因为未来用户认为他们需要更快/更好的功能。
答案 2 :(得分:0)
JFreeChart非常成熟并且已经存在多年。我在以前的项目中使用它并且它工作得非常好。它可以从富客户端应用程序或Web应用程序中使用。它具有两种方案的示例应用程序。如果您正在分发您的应用程序,它也是GPL许可。
在服务器端执行此操作的优点是,您可以将生成的图表呈现为图像,而不必担心跨浏览器兼容性。我通过从Servlet和Struts渲染来合并JFreeChart,效果非常好。
我不能代表Dojo图表,因为它是相当新的。
答案 3 :(得分:0)
第一个决定因素应该是您是否需要在禁用JavaScript的情况下访问图表。如果您这样做或认为可能,它会完全排除JavaScript。
答案 4 :(得分:0)
我看到任何一方都有很多有效点,但我喜欢做图表客户端的一点是能够与图表进行一些交互。使用Dojo图表库,您可以使用各种图表交互方法,例如dojox.charting.action2d.Highlight
和dojox.charting.action2d.Tooltip
。您还可以动态更新图表而无需刷新,我可以看到一些可能有用的情况。
当然,这完全取决于你,但我喜欢图表,我可以比从服务器渲染的图像更好地进行交互,我想很多人都同意我的看法。
答案 5 :(得分:0)
如果您使用javascript,您可能还需要服务器端解决方案,以防javascript被关闭。
如果您使用不引人注目的javascript,那么如果启用了javascript,它可以更改服务器端解决方案的链接以使用javascript图表工具。
我发现最好在服务器端使用php,因为gdlib很好,而且我的tomcat服务器有时会因为无法连接到x11服务器而抛出错误,即使它是在无头模式下运行。 / p>
有许多可能的解决方案,或者您可以自己完成。图形化并不难,这取决于您的需求。例如,如果您可以使用svg然后允许动画图表,但需要许多浏览器的插件。