我最近開始學習使用D3.js框架,雖然它看起來像是被設計成完全符合我的要求,但我找不到一個簡單的例子「現場」更新圖表。用D3生成一個「活動」圖表
我正在尋找類似折線圖的東西,當新數據變爲可用時更新。新的數據可以通過點擊帶有「上次看到」時間戳或其他AJAX-y方法的json url來獲得。
編輯:答案的D3部分是在這裏:
http://bost.ocks.org/mike/path/
現在,人們如何建議從服務器到客戶端獲取新的數據?
我最近開始學習使用D3.js框架,雖然它看起來像是被設計成完全符合我的要求,但我找不到一個簡單的例子「現場」更新圖表。用D3生成一個「活動」圖表
我正在尋找類似折線圖的東西,當新數據變爲可用時更新。新的數據可以通過點擊帶有「上次看到」時間戳或其他AJAX-y方法的json url來獲得。
編輯:答案的D3部分是在這裏:
http://bost.ocks.org/mike/path/
現在,人們如何建議從服務器到客戶端獲取新的數據?
這只是兩個例子:
選擇一種或另一種取決於許多變量:你希望有多少個連接做的,什麼是數據的更新速度,哪些瀏覽您計劃支持,等等。
在任何情況下,d3.js庫不參與你怎麼得到的數據,而是在怎麼顯示他們。
本教程可以幫助你很多來創建一個實時線圖:http://bost.ocks.org/mike/path/
我想補充一些更多的評論:當你做一個
異步數據
實時圖形,你經常得到的數據異步,因此你不知道每個「點」之間的確切時間。
line
不關心你是幸運的。Y軸
在常規的線圖,很容易確定在y域。然而,對於實時數據,y值通常會超出限制。這就是爲什麼我會建議在每次迭代時調用一個函數來設置y域。您也可以創建一個邊界框。
性能
由於數據總是添加你可能要很細心的,你必須刪除你不再使用的值的事實,否則你的數據會越來越重,在整個動畫可能會崩潰。
push (),Shift()與補間是爲了立體派+1 –
的確不錯,假設客戶端拉變形,是否有任何圍繞工作的例子涉及D3?我不是那種在javascript方面的專業知識,並有一些工作的例子會很棒... –
@ChrisWithers我想你可以使用任何JavaScript庫來進行AJAX調用。我不記得'd3.js'是否實現了其中的任何一個,但你總是可以使用'jQuery'(我認爲這是最流行的一個)。 –
謝謝!如果有人在一個實時更新D3圖的數據由純JS或ExtJS-y提供的情況下進行管道連接,那麼我所擁有的用例就是ExtJS已經在使用的地方,那將是非常棒的:-) –