【发布时间】:2017-10-24 12:50:09
【问题描述】:
我需要在主页和嵌入的iframes 之间传递大量数据。
为了避免 [de] 序列化开销,我希望将 ArrayBuffer 与 postMessage() 一起传递,并在不同的 iframes 中实例化指向此缓冲区的视图。
但似乎这种方法行不通,因为 postMessage() 的 MDN 文档将 message 参数描述为:
要发送到另一个窗口的数据。使用结构化克隆算法对数据进行序列化。
这似乎表明传递“指针”是不可能的,因为postMessage() 有效地只传递字符串......
有解决办法吗?在主线程和工作线程之间传递可转移对象效果很好。将ArrayBuffer 传递给 node.js 本机扩展的 C/C++ 代码也是如此。
【问题讨论】:
-
你能分享你的代码吗
-
在同一个域的情况下,直接分配给
parent.varnameiframe.contentWindow.varname等难道不是可能的吗?然后 postMessage() 到目标窗口通知它读取varname?
标签: javascript iframe postmessage