【发布时间】:2010-06-13 06:48:35
【问题描述】:
我看到有两种方法可以将对象从服务器传输到客户端
使用与服务层相同的域对象 (Contact.java)。 (我不使用休眠)
使用HashMap以如下形式发送域对象字段值 在 BeanUtilsBean 类的帮助下进行映射。对于多个对象,使用 列表>。同样,使用地图提交表单 从客户端到服务器的值
选项 1 比 2 有什么性能优势吗?
有没有办法隐藏发送到浏览器的类名/包名,如果我们 使用选项 1?。
谢谢!
【问题讨论】:
我看到有两种方法可以将对象从服务器传输到客户端
使用与服务层相同的域对象 (Contact.java)。 (我不使用休眠)
使用HashMap以如下形式发送域对象字段值 在 BeanUtilsBean 类的帮助下进行映射。对于多个对象,使用 列表>。同样,使用地图提交表单 从客户端到服务器的值
选项 1 比 2 有什么性能优势吗?
有没有办法隐藏发送到浏览器的类名/包名,如果我们 使用选项 1?。
谢谢!
【问题讨论】:
您必须了解,无论您选择什么选项,都需要将其转换为 JavaScript(+ 一些包装器等)——这些东西需要更多的时间和空间/带宽(注意:我没有做过任何基准测试,这只是我得出的一个[合理的]结论;))而不是JSON。但是如果你使用 JSON,你必须在服务器端重新创建对象,因为它不是灵丹妙药。最后,这一切都取决于您对性能有多大影响 - 如需更多信息,请参阅this question。
我会选择选项 1:让 GWT 团队打包您的域对象并在客户端和服务器之间传输它们。在未来(GWT 2.1),我们会有一些非常好的东西,包括更轻量级的传输协议 - 请参阅今年 Google I/O 在architecting GWT apps 上的演示 - 这是值得牢记的。
PS:在这种情况下自己做基准测试总是好的——你的配置、对象的类型等可能会产生一些与预期不同的结果。
【讨论】: