2012-05-09 120 views
1

Html5僅支持存儲鍵和值的字符串。GWT Html5存儲非字符串值

已知哪些方法可以打破此限制,尤其是在GWT的情況下?

是否有庫或框架處理這種情況?

標準庫的某些代碼是否有用?

編輯

我願做最自然的方法:

GET /請求數據形式緩存/存儲, 如果不可用,則通過GWT-RPC請求它

回答

2

AutoBeans對此非常好 - 只需定義一個bean接口和一個工廠接口,AutoBeans將解決如何將數據轉換爲JSON(或其他一些stringy數據)並返回的其他細節。

這個提問/回答討論如何這可能都與JavaScriptObject子類,並與AutoBeans加以解決:Cache in GWT app/widget with HTML5 localStorage

如果可能的編碼幾種不同的類型,這在幾個月前來到了一個答案可能會有所幫助:Parsing JSON objects of unknown type with AutoBean on GWT

如果您使用來自RPC的數據,事情會變得棘手。首先,你必須考慮RPC序列化機制爲了單向傳輸(儘管它們中有兩個,每個方向一個),以防止某些服務器 - >客戶端對象在服務器上出於安全原因被反序列化。其次,請記住,每次模型更改或RPC接口發生更改時,由於序列化格式已被修改,服務器和客戶端不再可以親眼目睹 - 應用程序的localStorage緩存會有一些數據在某些內容之後不再被讀取更新。

+0

我想要做的最自然的方法:獲取數據表單緩存/存儲,如果不可用,然後通過RPC請求它。所以我認爲AutoBeans不會進入這個szenario。我打算調查RPC。雙向的方面並不傷害我。 localStorage的更新問題對我來說似乎很管用。 –

+0

如果您碰巧使用了RequestFactory,它是RPC的替代品,它已經使用autobeans,所以更容易序列化對象。 –