2012-06-11 79 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