向浏览器提供二进制数据的最快方法是什么?

时间:2012-03-31 13:53:25

标签: javascript html performance html5 binary

我想向浏览器提供自定义二进制数据。它们实际上是图像,但我需要提供相同图像的多个版本+一些元数据。应该只使用一个GET请求就可以实现网络性能,并且应该在浏览器中快速解压缩。到目前为止,我可以想到这些解决方案:

  • 图片精灵(元数据怎么样?)
  • ZIP
  • msgpack
  • JSON + base64编码

我不关心< IE8。我认为在我的情况下避免使用XHR是不可能的,但是同样的原始策略使得它更糟糕,因为我需要从不同的(子)域加载。这可以通过服务器路由解决,另一方面阻止使用CDN。

2 个答案:

答案 0 :(得分:1)

这取决于数据结构,但是如果你需要在JavaScript中对这些数据做些什么 - 有两种(三种)方法来实现这一点

  • JSON + base64或转义特殊字符
  • XML + base64或转义(在其中一个之间选择取决于首选项)
  • 更难,但最有效 - 带有转义0字符和特殊标记的纯文本(制作三个特殊代码 - 0x00 0x40表示0x00字符,0x20 0x41表示标记,0x20 0x42表示0x20)

答案 1 :(得分:0)

事实证明,今天(以及不久的将来 - IE9)浏览器对二进制数据的支持非常差,因此无论您决定使用什么,都必须将其编码(可编码?)为Javascript字符串,即。 JSON + BASE64。

对于好奇的人:http://status-501.tumblr.com/post/20293218962/delivering-binary-data-to-browser