2011-08-09 22 views
8

哪些是在GWT中將大量數據從服務器發送到客戶端的最佳做法?GWT將大量數據從服務器發送到客戶端的最佳實踐

現在我們正面臨GWT 2.3.0中的性能問題。

我們的服務器端正在向客戶端發送巨大的xml(大小以MB/GB爲單位),我們的客戶端解析該xml並使用解析的數據,爲可填充Celltable數據中的數據形成bean列表。

我們在CellTable網格中填寫1k +/10k +記錄。

在處理如此龐大的數據時,是否有任何有效的方法/最佳實踐? 如果我們解析服務器端的數據並在服務器端形成bean,這是好的嗎?或任何其他方式..

任何幫助或指導在這個問題將不勝感激。

+0

以及如何在不壓縮數據?如果延遲在網絡中,也許compress - send - decompress可能會更快。 – rossum

回答

6

基本上,您只需要請求比當前用戶正在查看的數據(並且稍多一點),而不是整個數據集。

查看Adding Paging Controls瞭解更多詳情。與你的情況大量數據打交道時

3

兩種做法:

1)使用JSON而不是XML,這種方式,客戶端不需要解析數據,但可以直接使用這些數據。在通過GWT-JSNI接口的GWT中,您可以編寫訪問這些JavaScript對象的數據對象,請參閱:http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html。使用JSON REST庫,您可以在服務器上生成JSON,而不是將xml發送到客戶端。但是你也可以在客戶機/服務器上使用GWT-RPC,這使得編程更容易,因爲從JSON到JSON的整個數據轉換由GWT處理,但是向對象發送添加了一些類型信息。

2)使用分頁:只獲取用戶可見的數據並將其緩存到客戶端。如果您有表格演示文稿,則用戶不太可能同時需要所有數據。 GWT單元面板支持開箱即用(請參閱Oliver提供的關於添加分頁控制的鏈接)

2
  1. 使用分頁。 GWT單元小部件支持開箱即用的頁面。所以實現服務器端分頁,以便每次你點擊'下一步'服務器調用。這樣,客戶一次只能處理10或20條記錄。

  2. 使用Javascript Overlay類型作爲顯示bean。爲了填充這些bean,使用JSON作爲傳輸模型而不是XML。如果您使用XML(即異步調用),那麼GWT會在後端執行一些JAXB編組/解組邏輯。如果你使用JSON,大部分都是可以避免的。

相關問題