0

クライアント側のグラフを更新する必要があるプロジェクトで、SignalR を使用して .Net サーバーとの永続的な (COMET) 接続を維持することを検討しています。グラフ部分のFlotを考えているのですが、このように「ライブグラフ」を表示することができるのか興味があります。Flot はこれに適していますか? サーバーが新しいデータをグラフにプッシュし、利用可能になったときに既存のデータに追加できるようにしたいと考えています。

これを行う例が見つからないので、これを行うのに予想外の困難があるかどうか疑問に思っています。

4

1 に答える 1

2

私が最もよく知っている Flot と Highcharts の 2 つは、軸とグリッドが同じままである限り、データを再描画できます。その場合、それらはかなり効率的です。

flot を使用してデータを連続グラフに追加すると、グラフ全体を常に再描画することになります。最新のブラウザー (IE7 でさえも) では、ポイント数を適切に保つ限り、パフォーマンスはまったく問題ありません。毎秒更新される 4 ~ 6 個のフロート グラフを含むページがあり、それぞれが 1 秒あたり最大 3 ~ 5 個のデータポイントを持ち、最大 5 分のデータがあります (つまり、グラフごとに最大 1000 個のデータポイント、ページに合計 4000 個のポイントがあります)。これは、低電力のマシンでも遅れることなく達成されます。

flot の上でこのタイプのものを管理するためのライブラリを見たことがないので、自分でキャッシングすることになりました。

遭遇する唯一の「落とし穴」は、メモリ使用量が制御不能にならないようにすることだと思います。私がこれを試みた最初の数回は、グラフを一晩実行したままにしておくと、4 GB のメモリ使用量に戻ることになります。古いデータを適切に削除し、置き換えられたグラフや AJAX リクエストへの参照を保持しないようにしてください。

于 2012-08-03T15:39:50.367 に答える