有人存在吗?结构化克隆算法是为HTML5定义的,允许浏览器使用一致的机制来保存和传输由IndexedDB和window.postMessage()使用的复杂Javascript对象,但它不是序列化格式.有谁知道这种格式可以代表SCA中有效的一切?
除了JSON可以表示的类型之外,还必须包括对象之间的循环引用,以及RegExp对象,Blob,File,FileList和ImageData对象.
有什么事吗?
html5浏览器中存在结构化克隆算法
http://www.w3.org/TR/2011/WD-html5-20110525/common-dom-interfaces.html#safe-passing-of-structed-data
至少在FF中是实现的:
https://developer.mozilla.org/en-US/docs/DOM/The_structed_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) 开始,消息参数使用结构化克隆算法进行序列化。这意味着您可以将各种数据对象安全地传递到目标窗口,而无需自己序列化它们。