2011-04-11 96 views
2

我知道Protovis並不是真正用於這種方式,但是有沒有一種解決方法來銷燬當前在pv.Paneladd()'ing和re- render()'中的內容?Protovis強制重新呈現

我正在研究構建爲靜態的可視化,並嘗試將其遷移到通過WebSockets定期更新。

回答

5

是的,您可以讓Protovis在不破壞面板的情況下重新渲染。您可以更新面板使用的數據,並再次調用渲染。例如:

var data = [1, 2, 3]; 

var panel = new pv.Panel() 
    .data(data) 
    .add(pv.Bar) 
    ... 

panel.render(); // initial render 

data = [4, 5, 6]; 
panel.data(data); // update the data 
panel.render(); // re-render 
+0

謝謝!我最終通過使面板的所有孩子不可見並重新添加新的孩子來解決問題,因爲事實上,當上述解決方案起作用時,它不會擴展到像基於數據邊界的變化尺度之類的事情。如果您正在繪製1-10的數據並且數據的下一個版本是1-50,那麼您無法通過更新數據來重新調整圖形,對嗎? – nicolaskruchten 2011-04-28 04:37:06

+0

Nicolas,你是對的,當你調整你的數據時,如果你想根據數據改變他們的域或範圍,你需要重建你的比例對象。 – bsterne 2011-04-28 13:33:19