2011-01-24 44 views
2

我試圖找到使用Google Web Toolkit(GWT)從服務器 - >客戶端傳輸數據的最佳方式。我有一些我想發送的JSON文本,但是我用來做這兩個選項的速度都很慢。GWT客戶端JSON解析很慢 - 如何改進?

選項1:服務器產生的JSON字符串,解析成Java對象(我做了一個序列化類)這一點,把這些名單上的RPC,對象則使用客戶端。這裏的塊是RPC連接,這在傳輸&序列化對象時變得很慢。

選項2:服務器生成的JSON字符串,確實NO的解析工作,RPC的客戶爲一個字符串,客戶端然後解析成Java對象,並處理。這裏的塊是客戶端GWT JSON解析庫,它的速度很慢(13個對象大約7秒)。

我已經試過唯一的「快」選項是序列化類,這是再拆和切碎的客戶端上的每個實例創建的字段的一個連接字符串。然而,如果在被傳輸的內容中曾經使用過分裂字符,這是sl and不馴的。

也許我做的事情完全,顯然是錯誤的。但是如何提高GWT JSON解析時代任何知識RPC傳輸時間將不勝感激!

乾杯,

保羅

回答

4

我會建議使用瀏覽器的JSON解析器,裹在JSNI方法。請注意,傳統瀏覽器不支持它,因此您可以使用https://github.com/douglascrockford/JSON-js來彌補這一差距。

注意,所提供的com.google.gwt.json.client JSON方法不是在西部最快,因爲它們使用的包裝對象。我編寫了自己的JSON庫(在開放源代碼之前太久),但同時您可以編寫JSNI方法以本機速度遍歷JSON對象。

+0

感謝您的回覆。 JsonUtils.unsafeEval是否使用本機瀏覽器解析器?如果不是,你碰巧知道所需的方法? – codinghands 2011-01-24 02:33:00