【发布时间】:2018-04-15 19:58:47
【问题描述】:
我试图了解从 WebAssembly 调用 XmlHttpRequest 的最佳和最有效的方法。
我找到了http://webassembly.org/getting-started/js-api/,它似乎解释了如何在 JavaScript 和 WebAssembly 之间进行调用。
为了让它发挥作用,在我看来,我必须执行以下操作:
- 编写一个 JavaScript 函数,将其导入到调用 XmlHttpRequest 的 WebAssembly 中
- 编写一个从 WebAssembly 导出的 WebAssembly 函数,当 XmlHttpRequest 完成时 JavaScript 调用该函数。
如果我想运行动态数量的并发 XmlHttpRequest,我还需要导入的函数提供一个处理程序,然后由 JavaScript 将其提供回导出的函数。
我现在有几个问题:
- 上面的方法准确吗?
- 如何将 URI 从 WebAssembly 传输到 XmlHttpRequest?我是否必须在 WebAssembly 中导入或导出 WebAssembler.Memory 对象并将 URI 放入其中?
- 如果对 2 的回答是肯定的,则此 WebAssembler.Memory 对象将像一个全局变量,但这可以工作,因为只有一个线程。正确吗?
- 类似于 2,如何将 XmlHttpRequest 的结果传回 WebAssembly?也在导入/导出的 WebAssembler.Memory 对象中?
- 结合 4,如何以最有效的方式将 XmlHttpRequest 的结果导入 WebAssembly - 例如尽可能少的副本?我是否需要将 XmlHttpRequest 的结果从 JavaScript 代码复制到 WebAssembler.Memory 对象中?再说一遍,这个 WebAssembler.Memory 对象是一个全局变量吗?我想我可以让调用表单 WebAssembly 到 JavaScript 传递一个索引来指示结果应该放在 WebAssember.Memory 中的哪个位置?
【问题讨论】:
标签: xmlhttprequest webassembly