從http://docs.oracle.com/javafx/2/api/javafx/scene/control/Cell.html:什麼是「虛擬化控制」? (在JavaFX文檔中提到)。
「小區API用於虛擬控制,如ListView中,樹視圖,和TableView中的細胞是標記的對照,並用於呈現單個‘一個ListView內部行’, TreeView或TableView「。
他們爲什麼虛擬化?
從http://docs.oracle.com/javafx/2/api/javafx/scene/control/Cell.html:什麼是「虛擬化控制」? (在JavaFX文檔中提到)。
「小區API用於虛擬控制,如ListView中,樹視圖,和TableView中的細胞是標記的對照,並用於呈現單個‘一個ListView內部行’, TreeView或TableView「。
他們爲什麼虛擬化?
當您需要在Control
(如ListView
)中顯示大量數據時,需要虛擬化已創建和使用的Nodes
的某種方法。否則會影響內存佔用,從而影響時間。
例如,如果您有1000萬個數據項,則不需要創建1000萬個節點。因此,您可以創建足夠的節點來動態填充顯示,並在用戶滾動瀏覽ListView
控件時重新使用它們。
因爲樹視圖,ListView中,TableView中和其它這樣的控制可以 潛在地用於顯示令人難以置信的大量數據, 它不是爲每一個項目創建一個實際的細胞可行在 的控制下。我們代表非常大的數據集,只使用非常少的單元格。每個單元都被「回收」或重複使用。當我們說這些控件是虛擬化的時,這就是我們的意思 。
P.S:每個框架有這種類型的虛擬化,無論是Android的,WPF,JavaFX的等
從JavaFX的開發商之一: http://fxexperience.com/2009/09/ui-virtualization/