我通过 GWT RPC 机制在客户端和服务器之间来回发送对象 ID。id 以长整型(8 字节)形式从数据存储区中出来。我想我所有的 id 只需要 4 个字节,但是是随机的 可以 发生这给了我一个 5 字节(或其他)值。

GWT 是否会聪明地将这些值打包在某种可变长度编码中,从而平均节省空间?我可以指定它在某个地方这样做吗?或者我应该编写自己的代码将长整型复制为整数并注意那些特殊情况?

谢谢~

有帮助吗?

解决方案

如在 GWT文档说明。

  

<强>长:JavaScript有没有64位积分型的,只要需要特别的考虑。之前GWT 1.5时,长型被简单地映射到一个64位的JavaScript浮点值的积分范围,给予长变量的实际范围小于全64位。作为GWT 1.5的,长原语被仿真为一对32位整数,和可靠地工作在整个64位范围。溢出的模拟相匹配的预期行为。有几个需要注意的地方。大量使用长操作会影响性能,由于潜在的仿真。另外,长原语不能在JSNI码,因为它们不是天然的JavaScript数值类型使用。

如果你的IDS可以容纳一个整数,你可能会与更好。否则,如果您使用的是DTO,使IDS双,这实际上在Javascript中存在。

其他提示

GWT 对负载为 256 字节或更大的响应使用 gzip 压缩。如果您的响应中有很多零字节,那么这应该很有效。

RemoteServiceServlet.shouldCompressResponse:

确定是否应压缩对给定Servlet请求的响应。仅在请求者接受GZIP编码的情况下,该方法才会调用。

如果响应字符串的估计字节长度长于256个字节,则此实现当前返回TRUE。子类可以覆盖此逻辑。

因此,服务器首先检查请求者(通常是浏览器)是否接受 GZIP 编码。在内部, java.util.zip.GZIPOutputStream 被使用 - 请参阅 RPCServerUtils. 。在客户端,浏览器的工作是 解压缩 gzip 后的有效负载 - 由于这是在本机代码中完成的,因此应该相当快。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top