2013-10-03 21 views
0

我們正在爲中型後臺應用程序構建我們新的下一代服務器。 我們已經決定了我們想爲客戶端使用java框架(gwt \ vaadin \ zkoss)Backoffice java客戶端框架 - 在deman上加載

我們現在想要創建一個Proof Of Concept示例的每種技術。

我們的後臺ui是非常標準的,我們有表格\網格與過濾器,應該直接從數據庫顯示條目。

問題是我們在每個表中獲得了大量的行(最小1M) 這意味着我們必須爲它們使用按需加載表。

我的問題是:我如何爲我的大表實現按需加載表?我環顧四周,一次又一次地看到以下概念:

你創建一個容器,你用數據填充它,數據顯示在客戶端。

問題是我試過這種天真的方式來填充1M條目的容器,這是可怕的。有沒有內置的按需容器?>

任何代碼示例\引用將是一個巨大的幫助!

回答

0

想要使用GWT Cell Table(其中包含AsyncDataProvider),它允許您通過從服務器獲取數據來處理用戶的分頁和排序事件。

它還提供了一個替代ListDataProvider,它可以讓你抓取你的數據作爲一個對象列表,然後將該數據設置到您的表。如果使用ListDataProvider,則必須定義如何使用Comparator s對對象進行排序,並且表將按照該列表處理排序和分頁。

有關更多示例和教程的Google「gwt celltable asyncdataprovider示例」。

0

Vaadin在大多數組件中都有一個很好的延遲加載數據的概念。 例如,表格,列表,下拉列表等都有這個概念。

你真正需要知道的唯一事情就是開始時需要知道的總行數。 然後可以處理所有其他的「ondemand」。

例如,表格組件最初只加載約30行(可定製) ,然後根據需要提取行。

一個例子(或更好,他們通常只是用戶scrols到下一行前取)是這個演示

http://demo.vaadin.com/dashboard/#!/transactions

你怎麼從你的後端檢索數據取決於所使用的技術。 但是vaadin有工作理念,你不需要加載全部1mio。行到內存中, 它將處理「按需提取」,因爲需要顯示行。