如何在本地加载wasm模块?

问题描述 投票:0回答:1

我正在尝试使用JavaScript和WebAssembly进行简单,独立的(仅.html文件和.wasm文件)离线数据可视化。但是,我无法从本地文件加载WASM模块。

第一个麻烦是CORS。尝试使用相对URL或file:// URL加载任何JS模块都会给我带来安全错误。在Firefox上,我设法禁用了本地CORS,但这非常棘手,而且过于宽松。在Chrome上,我需要使用标志启动浏览器。从用户角度来看,这些都不是初学者。有什么方法可以从本地文件加载JS或WASM模块,而不会遇到CORS问题?

绕开CORS,第二个麻烦是,尽管Firefox能够加载JS模块,但WASM模块却失败了:(我的实际错误消息是日语,但我认为这是英文)。 “ .wasm”与来源”。没有显示更多信息。在Chrome上,错误消息为“无法加载模块脚本:服务器以非JavaScript MIME类型“”响应。根据HTML规范对模块脚本强制执行严格的MIME类型检查。”这表明,两种浏览器都可能无法识别MIME类型。

这两个问题都可以通过设置HTTP服务器来解决,但这完全违背了只需要运行浏览器即可拥有一个简单,自包含文件的目的。

是否有一种仅使用本地文件加载和调用WASM的方法?

我正在尝试使用JavaScript和WebAssembly进行简单,独立的(仅.html文件和.wasm文件)离线数据可视化。但是,我在加载WASM模块时遇到麻烦...

javascript browser webassembly
1个回答
0
投票

您可以将Wasm二进制文件作为Uint8Array内联,并以这种方式实例化。不过,它只有在足够小的情况下才有效。如果Wasm大于4KB,我相信您会收到错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.