在我的GWT應用程序中,我從REST服務器檢索XML數據。我正在使用Piriti XML解析器https://code.google.com/p/piriti/wiki/Xml來反序列化對象並在表中顯示。只要我們返回1000條記錄,一切都很好,但是隻有掛起並且提供用戶消息才能停止運行在後面的java腳本。有人可以幫助我找到在GWT中處理大數據的最佳方法,或者更準確地說,是解析GWT中的大XML文件的最佳方法。如何在GWT中解析大數據(XML)
非常感謝您的所有建議。
在我的GWT應用程序中,我從REST服務器檢索XML數據。我正在使用Piriti XML解析器https://code.google.com/p/piriti/wiki/Xml來反序列化對象並在表中顯示。只要我們返回1000條記錄,一切都很好,但是隻有掛起並且提供用戶消息才能停止運行在後面的java腳本。有人可以幫助我找到在GWT中處理大數據的最佳方法,或者更準確地說,是解析GWT中的大XML文件的最佳方法。如何在GWT中解析大數據(XML)
非常感謝您的所有建議。
問題是解析一個大的XML文檔會降低瀏覽器速度。而且你需要足夠的內存來保存整個DOM以及內存中的映射對象。唯一的解決辦法是避免這種情況。您必須調整您的REST服務才能夠僅向瀏覽器發送小塊數據。所以如果你已經有一個分頁表,你只能在開始時檢索第一頁的數據。如果用戶想要更改該頁面,則執行另一個REST調用以檢索下一頁的數據。
如果您不能更改REST服務本身,您可以創建另一個服務器端服務(在由您控制的服務器上)作爲代理。初次訪問時,您調用原始REST服務,將XML存儲在您自己的服務器上,並允許客戶端僅檢索該XML的部分內容。
是否可以創建一個分頁表並且一次僅使用一些數據? [GWT CellTable示例](http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCellTable) – mdl
是的,我創建分頁表,但實際的問題是發生初始化數據提供程序,因爲這是XML解析器正在將記錄轉換成列表 – Ashish
沒有用戶需要在表中記錄數千條記錄。您只應將一頁結果傳遞給客戶端(即數據提供者)。當用戶請求第二頁時,你傳遞第二頁的結果等等。 –