2012-08-02 37 views
0

我正在考慮使用SignalR在我需要更新客戶端圖形的項目中與我的.Net服務器保持持久性(COMET)連接。我正在考慮圖形部分的Flot,但我很好奇它是如何以這種方式顯示「實時圖形」的。 Flot是一個很好的選擇嗎?我希望服務器能夠將新數據推送到圖中,並在現有數據可用時添加到現有數據中。SignalR與Flot

我還沒有找到任何這樣做的例子,所以我想知道是否有一些困難,這樣做,我不期待。

+0

此外,如果另一個圖形選項會更好地工作,我想聽聽它。我更願意使用開放源代碼,因爲我可能需要至少對其進行自定義。 – 2012-08-02 20:21:48

回答

2

Flot和Highcharts是我最熟悉的兩個,只要軸和網格保持不變,就可以重新繪製數據。在這種情況下它們非常高效。

要使用flot將數據追加到連續圖形中,最終只會始終重繪整個圖形。在任何現代瀏覽器(甚至IE7)中,只要你保持點數合理,性能將完全可以接受。我有4-6頁的圖表,每秒更新一次,每秒約3-5個數據點,最多5分鐘的數據(每個圖表約1000個數據點,頁面總共4000點)。即使在低功率的機器上,也可以無滯後地實現。

我還沒有看到任何庫來管理這種類型的事情,所以我最終做了我自己的緩存。

我認爲你會遇到的唯一「困難」是確保你不會讓你的內存使用失控。我在這裏做的第一對夫婦嘗試,如果你離開圖表在一夜之間運行,你會回到使用的4GB內存。確保您正確刪除舊數據,並且不要保留對被替換的圖表和AJAX請求的引用。