使用GWT内置的RPC序列化/反序列化机制

发布于 2024-11-27 05:49:36 字数 218 浏览 2 评论 0原文

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

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

I am developing GWT offline application using HTML5 Local Storage. I would like to cache/store the transfer objects using com.google.gwt.storage.client.Storage (introduced in version 2.3). But the problem is that as for now (version 2.3) the Storage can only save the string values.

Is there any possibility to use GWT's built in rpc serialization/deseralization mechanism from client side code? So that I will be able to serialize transfer objects and store them in Local Storage and retrieve them when needed and deserialize the content.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好多鱼好多余 2024-12-04 05:49:36

GWT 文档有这样的说法:

本地存储是字符串存储

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


编辑:

RequestFactory#getSerializer() 返回 ProxySerializer。但

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

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

GWT Docs have this to say:

Local Storage is String Storage

HTML5 local storage saves data in
string form as key-value pairs. If the data you wish to save is not
string data, you are responsible for conversion to and from string
when using LocalStorage. For proxy classes used with the GWT
RequestFactory, you can use RequestFactory#getSerializer() to do
string serializing. For non-proxy objects, you could use JSON
stringify and parse.


EDIT:

RequestFactory#getSerializer() returns an implementation of ProxySerializer. But

ProxySerializer Serializes graphs of EntityProxy objects. A
ProxySerializer is associated with an instance of a ProxyStore when it
is created via RequestFactory.getSerializer(ProxyStore).

So you cannot use it to serialize arbitrary objects. Only EntityProxy objects can be serialized this way. GWT documentation does not mention any method for doing such serialization for non-EntityProxy objects, so I think it is safe to assume that there is no ready-made solution for doing this so far. For non-EntityProxy objects, GWT docs (quoted above) recommend using JSON serialization.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文