一个存在吗?结构化克隆算法是为 HTML5 定义的,以允许浏览器采用一致的机制来持久化和传输复杂的 Javascript 对象,由 IndexedDB 和 window.postMessage() 使用,但它不是序列化格式。有谁知道这种可以代表 SCA 中所有有效内容的格式?
除了 JSON 可以表示的类型之外,这还必须包括对象之间的循环引用,以及 RegExp 对象、Blob、File、FileList 和 ImageData 对象。
有什么符合要求的吗?
一个存在吗?结构化克隆算法是为 HTML5 定义的,以允许浏览器采用一致的机制来持久化和传输复杂的 Javascript 对象,由 IndexedDB 和 window.postMessage() 使用,但它不是序列化格式。有谁知道这种可以代表 SCA 中所有有效内容的格式?
除了 JSON 可以表示的类型之外,这还必须包括对象之间的循环引用,以及 RegExp 对象、Blob、File、FileList 和 ImageData 对象。
有什么符合要求的吗?
html5 浏览器中存在结构化克隆算法是
它至少在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) 开始,消息参数使用结构化克隆算法进行序列化。这意味着您可以将各种数据对象安全地传递到目标窗口,而无需自己序列化它们。