0

我正在考虑在需要更新客户端图的项目中使用 SignalR 与我的 .Net 服务器保持持久(COMET)连接。我正在考虑绘图部分的 Flot,但很好奇以这种方式显示“实时图表”的可能性有多大。Flot 是一个不错的选择吗?我希望服务器能够将新数据推送到图表并将其附加到现有数据,因为它变得可用。

我还没有找到任何这样做的例子,所以我想知道这样做是否有一些我没有预料到的困难。

4

1 回答 1

2

Flot 和 Highcharts,我最熟悉的两个,只要坐标轴和网格保持不变,就可以重绘数据。在这种情况下,它们非常有效。

要使用 flot 将数据附加到连续图,您最终只会一直重绘整个图。在任何现代浏览器(见鬼,甚至 IE7)中,只要您保持合理的点数,性能将完全可以接受。我的页面有 4-6 个浮点图,每秒更新一次,每个页面每秒有约 3-5 个数据点,最多可保存 5 分钟的数据(因此每个图约 1000 个数据点,页面上总共有 4000 个点)。即使在低功率机器上,也可以毫无延迟地实现这一点。

我还没有看到任何库可以在 flot 之上管理这种类型的东西,所以我最终做了自己的缓存。

我认为你会遇到的唯一“问题”是确保你不会让你的内存使用失控。我在这方面进行的前几次尝试,如果你让图表在一夜之间运行,你会回到使用的 4GB 内存。确保正确删除旧数据,并且不要保留对替换图形和 AJAX 请求的引用。

于 2012-08-03T15:39:50.367 回答