相关疑难解决方法(0)

常见的JavaScript实现是否使用字符串实习?

常见的JavaScript引擎(如V8和WebKit的JavaScriptCore)是否使用字符串实习来处理JavaScript字符串?或者他们实际上在内存中保留了多个相同字符串的实例?

javascript programming-languages webkit v8 string-interning

33
推荐指数
3
解决办法
5213
查看次数

尝试减少JSON大小是否值得努力?

我从移动应用程序(最多1000个JSON对象)提交相对大量的数据,我通常会像这样编码:

[{
    id: 12,
    score: 34,
    interval: 5678,
    sub: 9012
}, {
    id: ...
}, ...]
Run Code Online (Sandbox Code Playgroud)

我可以通过提交数组数组来减小有效负载:

[[12, 34, 5678, 9012], [...], ...]
Run Code Online (Sandbox Code Playgroud)

在属性名称上保存一些空间,并在服务器上重新创建对象(因为模式已修复,或者至少它是服务器和客户端之间的契约).

然后在POST请求中提交有效载荷,最有可能通过3G连接(或可能是wifi).

看起来我通过使用嵌套数组来节省一些带宽,但我不确定应用gzip时它是否明显,我不确定如何精确和客观地测量差异.

在另一方面,嵌套的数组不觉得是个好主意:他们不太容易阅读,因而更难调试时发现错误.此外,由于我们正在冲洗马桶的可读性,我们可以简化阵列,因为每个子阵列都有固定数量的元素,服务器可以将其切片并再次重建对象.

关于这个主题的任何进一步的阅读材料非常感谢.

performance json http bandwidth

20
推荐指数
5
解决办法
2万
查看次数

JSON响应对象:"漂亮"键和更大的响应或短键以及更小的响应?

我的实时Web应用程序生成ajax请求以获取JSON经济数据响应.

返回的数据通常是对象数组的形式.

由于数组通常有很多元素(虽然发送的数据是由服务器进行的,但是为了使响应大小保持最小),我仍然保持响应中的密钥非常短.

例如,而不是使用描述:我使用d:而不是使用宽度:我使用w:等等......

这样做会减小响应的大小,但是在客户端,非常短的非人类可读密钥会使JavaScript代码(访问对象)的可读性降低.

唯一的解决方案似乎是重新解析响应并使用漂亮的密钥重建对象,或者在接收的原始对象中替换它们.但这可能会损害JavaScript代码性能,从而导致更多延迟......

存在更好的解决方案?


编辑:

正如BjörnRobberg在评论中所说,我做了一个比较:

pretty-response.json       459,809 bytes
 short-response.json       245,881 bytes

pretty-response.json.zip    28,635 bytes
 short-response.json.zip    26,388 bytes
Run Code Online (Sandbox Code Playgroud)

因此,当服务器压缩响应时,差异实际上是微乎其微的.

仍然,漂亮的响应要求服务器压缩450 KB的数据,而短响应只需240 KB.

这是否会影响服务器性能(或者有没有办法测量它)?

javascript json

6
推荐指数
2
解决办法
1013
查看次数