5

我正在使用 HTML5 本地存储开发 GWT 离线应用程序。我想使用 com.google.gwt.storage.client.Storage(在 2.3 版中引入)缓存/存储传输对象。但问题是,就目前(2.3 版)而言,Storage 只能保存字符串值。

是否有可能从客户端代码使用 GWT 内置的 rpc 序列化/反序列化机制?这样我就能够序列化传输对象并将它们存储在本地存储中,并在需要时检索它们并反序列化内容。

4

1 回答 1

1

GWT Docs有这样的说法:

本地存储是字符串存储

HTML5 本地存储以字符串形式将数据保存为键值对。如果您要保存的数据不是字符串数据,则您需要在使用 LocalStorage 时负责与字符串之间的转换。对于与 GWT RequestFactory 一起使用的代理类,您可以使用 RequestFactory#getSerializer() 进行字符串序列化。对于非代理对象,您可以使用 JSON 字符串化和解析。


编辑:

RequestFactory#getSerializer()返回ProxySerializer. 但

ProxySerializer 序列化 EntityProxy 对象的图形。ProxySerializer 在通过 RequestFactory.getSerializer(ProxyStore) 创建时与 ProxyStore 的实例相关联。

所以你不能用它来序列化任意对象。只有EntityProxy对象才能以这种方式序列化。GWT 文档没有提到对非EntityProxy对象进行这种序列化的任何方法,所以我认为可以安全地假设到目前为止还没有现成的解决方案。对于非EntityProxy对象,GWT 文档(上面引用)推荐使用 JSON 序列化。

于 2011-07-29T12:50:38.200 回答