序列化格式与结构化克隆算法兼容?

时间:2013-01-01 01:42:31

标签: html5

是否存在?结构化克隆算法是为HTML5定义的,允许浏览器使用一致的机制来保存和传输由IndexedDB和window.postMessage()使用的复杂Javascript对象,但它不是序列化格式。有谁知道这种格式可以代表SCA中有效的一切?

除了JSON可以表示的类型之外,还必须包括对象之间的循环引用,以及RegExp对象,Blob,File,FileList和ImageData对象。

是否符合要求?

1 个答案:

答案 0 :(得分:2)

html5-browsers中结构化克隆算法的存在

http://www.w3.org/TR/2011/WD-html5-20110525/common-dom-interfaces.html#safe-passing-of-structured-data

至少在FF中实现:

https://developer.mozilla.org/en-US/docs/DOM/The_structured_clone_algorithm

我认为使用它你只需在对象的消息参数中给出一个对象图(可能是循环的):

  

window.postMessage(message, targetOrigin);

https://developer.mozilla.org/en-US/docs/DOM/window.postMessage

这里含蓄地说:

  

注意:在Gecko 6.0(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)之前,message参数必须是字符串。从Gecko 6.0(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)开始,使用结构化克隆算法序列化消息参数。这意味着您可以将各种各样的数据对象安全地传递到目标窗口,而无需自行序列化。