首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XmlHttpRequest调用WebAssembly

从XmlHttpRequest调用WebAssembly
EN

Stack Overflow用户
提问于 2017-11-03 06:34:01
回答 1查看 3.1K关注 0票数 8

我试图理解什么是从WebAssembly调用WebAssembly的最佳和最有效的方法。

我找到了http://webassembly.org/getting-started/js-api/,它似乎解释了如何在JavaScript和WebAssembly之间打电话。

为了让这件事奏效,我不得不做以下几件事:

  • 编写一个导入到WebAssembly中的WebAssembly函数,该函数调用XmlHttpRequest
  • 编写一个WebAssembly函数,我从WebAssembly导出该函数,JavaScript在XmlHttpRequest完成时调用该函数。

如果我想要运行一个动态的并发XmlHttpRequests,我还需要导入函数来提供一个处理程序,然后由JavaScript提供给导出的函数。

我现在有几个问题:

  1. 上面的内容准确吗?怎么做?
  2. 如何将URI从WebAssembly传输到XmlHttpRequest?我是否必须将WebAssembler.Memory对象导入或导出到/从WebAssembly并将URI放在其中?
  3. 如果对2的回答是肯定的,那么这个WebAssembler.Memory对象将像一个全局变量,但这可以工作,因为只有一个线程。对,是这样?
  4. 类似于2,如何将XmlHttpRequest的结果传输回WebAssembly?同样在导入/导出的WebAssembler.Memory对象中?
  5. 对于4,如何以最有效的方式将XmlHttpRequest的结果输入WebAssembly --例如,尽可能少拷贝?是否需要将XmlHttpRequest的结果从WebAssembler.Memory代码复制到WebAssembler.Memory对象中?同样,这个WebAssembler.Memory对象是一个全局变量吗?我想我可以让WebAssembly到JavaScript的调用表传递一个索引,以指示在WebAssember.Memory中结果应该放在哪里?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 15:47:03

  1. 是的,这是正确的。
  2. 您可以将URI作为字符串进行传输,如这个关于字符串的问题中所解释的那样
  3. 当WebAssembly支持线程时,您可以调用JavaScript,只需堆-分配字符串,传递其pointer+length,并在该调用返回时删除。
  4. 是的,像字符串一样把它转回来。
  5. 目前,您必须做一个副本,尽管社区组正在讨论允许将来出现更少副本的方法。最近这类讨论的备注可以从WebAssembly会议存储库获得。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47089788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档