异步调用emscripten使用asm.js生成lib

时间:2017-04-13 15:32:20

标签: javascript asynchronous optimization emscripten asm.js

我使用emscripten编译了一个lib,生成了mylib.js。

基本上它的接口是在mylib.js的末尾声明的:

var MyLib = function () {
  that = {};
  that.ptr = MyLib_constructor();
  that.destroy = function () {
    MyLib_destructor(that.ptr);
  };
  that.doSomething = function () {
    MyLib_doSomething(that.ptr);
  };
  return that;
};

我将它集成到这样的HTML页面中:

<html>
<head>
  <script src="mylib.js"></script>
</head>
<body>
  <script>
    var MyLibInstance = MyLib();
    /*...*/
  </script>
</body>
</html>

然而,在控制台中,我收到了以下警告:

  

成功编译了asm.js代码(总编译时间为17ms;无法在同步脚本中缓存asm.js;尝试通过或者createElement加载asm.js(&#39;脚本&#39;))

1。这会影响性能吗?怎么样?

然后我尝试让脚本调用异步:

<script src="mylib.js" async=true></script>

然后它可以缓存:

  

成功编译了asm.js代码(在48ms内从缓存加载)

然后再找不到MyLib了:

  

ReferenceError:MyLib未定义[了解更多]

2。是否有关于如何使此代码异步并让我的脚本可以看到界面的示例?

0 个答案:

没有答案