2012-06-11 75 views
1

我有一个页面,我不断从数据库中定期获取数据。这些数据被描绘成一个图表。在每个时期,我想用新数据更新图表。这意味着我不想替换旧的图形,但扩展它。例如,即时通讯使用当前正在显示的折线图。当新数据进入时,我希望图表中的行扩展以表示新数据,但以前的行应保持原样。哪个JavaScript图形API可以提供此功能?谷歌图表有可能吗?动态更新网页上的图形

回答

4

好吧,不管你喜欢还是不喜欢,你写一个实时的Web应用程序的中间过程是:d

这里是您的解决方案:

纯JavaScript

  • 如果您在使用图书馆的心情是:

我强烈建议使用APE库。正如我以前多次说过的那样,这是一个用于开发实时Web应用程序的强大框架。
另一个很好的解决方案是HTML5的websockets。它很棒,但不是跨浏览器。

  • 如果您在使用图书馆的情绪不是:

您可以发送一个AJAX请求到服务器以定期检查是否有任何更新可为您的数据或没有。

使用第三方插件

最简单,最常见的解决方案是Adobe Flash的XMLSocket的API。
你也可以使用Silverlight,但你知道,它不值得(我的意思是开发时间)。


编辑:

哦,差点忘了说,这种编程方式(更新,而无需用户的交互/感知数据)被称为Comet programming,所以如果你需要一个关键词来对这个问题进行进一步搜索使用这一个。

+0

谢谢..真棒解释! :) – Cygnus

+0

@Cygnus您的欢迎:D开发实时Web应用程序和Comet编程需要多一点努力和工作,但结果总是比传统的Web应用程序更好。祝你好运。 – Sepehr

1

我同意3p3r,并可以详细说明库的实现。

您可能要牢记的一个主题是数据绑定。 这是一个MVC系统常用的进程,如backbone.js。 这个概念是,当检测到数据变化时,模型(数据)会自动更新到视图中。

数据绑定不仅在MVC中可用,而且还可用于像ExtJS这样的图库的绘图小部件。使用库可以大大减少开发中的维护开销并避免常见的复杂情况。

其他可以轻松整合数据绑定过程的库有:D3,HighCharts和Raphael。

一切顺利! 纳什

+0

谢谢!我已经在MVC中使用数据绑定(WPF应用程序).​​.虽然不知道网络支持! – Cygnus