如何在本地加载 wasm 模块?

2024-01-16

我正在尝试使用 JavaScript 和 WebAssembly 制作一个简单的、独立的(只有一个 .html 文件和一个 .wasm 文件)离线数据可视化。但是,我在从本地文件加载 WASM 模块时遇到问题。

第一个麻烦是CORS。尝试使用亲戚或a加载任何JS模块file://URL 出现安全错误。在 Firefox 上,我设法禁用了本地 CORS,但这很糟糕且过于宽松。在 Chrome 上,我需要使用标志启动浏览器。从用户的角度来看,这些都是不可能的。有没有办法从本地文件加载 JS 或 WASM 模块而不会遇到 CORS 麻烦?

绕过 CORS,第二个问题是,虽然 Firefox 能够加载 JS 模块,但 WASM 模块失败:(我的实际错误消息是日语,但我认为这是英语)“Loading failed for the”。 wasm“与来源”。没有显示更多信息。在 Chrome 上,错误消息为“无法加载模块脚本:服务器响应非 JavaScript MIME 类型“”。根据 HTML 规范,对模块脚本强制执行严格的 MIME 类型检查。”,这表明两种浏览器可能都无法猜测 MIME 类型。

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

有没有办法仅使用本地文件加载和调用 WASM?


您可以将 wasm 编码为 base64,然后像这样加载它(据我所知,没有大小限制 - 绝对适用于 5Mb+)

Module.wasmBinaryFile="data:application/wasm;base64,AGFzbQEAAAABww...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在本地加载 wasm 模块? 的相关文章

随机推荐

  • 在 R 中使用函数参数定义全局变量

    我正在尝试在 R 中编写一个函数 该函数从数据框中删除列并返回新数据 其名称指定为函数的参数 drop lt function my data col new data new data lt lt my data col return n
  • Firefox 不尊重用户媒体(首选颜色方案:深色)

    我正在使用 MediaWiki 的 Timeless CSS 进行媒体查询 media prefers color scheme dark 为了向在操作系统级别选择深色模式的用户显示深色站点版本 当我通过 Windows 切换深色或浅色模式
  • NSInvocableOperation 和 NSBlockOperation 有什么区别

    Foundation Framework中共有三个操作类 NSOperation NSInvocationOperation and NSBlockOperation 我已经读过并发编程指南 https developer apple co
  • threading.Timer - 每“n”秒重复一次函数

    我想每 0 5 秒触发一个函数 并且能够启动 停止和重置计时器 我不太了解 Python 线程的工作原理 并且在使用 Python 计时器时遇到困难 然而 我不断得到RuntimeError threads can only be star
  • 使用 OrientDB 递归遍历有向边

    我正在尝试从给定节点递归遍历出站边缘 而不是入站边缘 我想要查询结果中包含出边和出顶点 下图中 从 a 开始 我需要 a b c d e 包括边缘 但不包括 c 之后的部分 即 lt x a gt b gt c lt x gt d gt e
  • 跟踪嵌入的 YouTube 视频观看次数

    我在我的网站中嵌入了一些 YouTube 视频 我想使用 google Analytics 跟踪每个视频的观看次数 但我无法捕获任何 onClick 事件 因为视频是使用 iFrame 嵌入的 如何使用 iFrame 跟踪嵌入在我的网页中的
  • React-router 链接不起作用

    React router 的起步非常糟糕 看起来基本的东西不起作用 使用react router 2 0 0我的Link组件将URL更新为 about 但我的页面在那之后不会渲染About组件 入口点js var React require
  • 使用 Moq 模拟 EF DbContext

    我正在尝试使用模拟的 DbContext 为我的服务创建单元测试 我创建了一个界面IDbContext具有以下功能 public interface IDbContext IDisposable IDbSet
  • 跨浏览器 nowrap 文本区域

    我正在寻找一种跨浏览器解决方案 文本区域 文字换行only输入时 滚动条都隐藏 直到文本溢出 我已经尝试了几乎所有可以在SO中找到的东西 失败 1 textarea white space nowrap overflow auto 在 FF
  • 最好的免费测试跟踪软件是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Vuejs 和 Vue.set(),更新键/值数组

    我想弄清楚如何this set aka Vue set api 在使用它更新多维数组时起作用 Given new Vue el app data rows id 4 edit true id 5 edit false 我将如何使用 this
  • 为什么 data.tables mutate(row_number()) 失败?

    当我尝试使用时row number from dplyr在 data table 上 它会抛出错误 这是一个例子 library dplyr library data table mine lt data table a 1 10 mine
  • 通过正则表达式解析CSS

    我正在创建一个 CSS 编辑器 并尝试创建一个可以从 CSS 文档获取数据的正则表达式 如果我有一个属性 则此正则表达式有效 但无法让它适用于所有属性 我在 PHP 中使用 preg perl 语法 Regex
  • 有人使用过 __COUNTER__ 预处理器宏吗?

    The COUNTER 符号由提供VC http msdn microsoft com en us library b0084kay VS 80 aspx和GCC 并且每次使用时都会给出一个递增的非负积分值 我有兴趣了解是否有人使用过它 以
  • 如何找出当前的溢出检查上下文?

    有没有办法在 C 中做到这一点 例如 如果调用您的方法并且您想知道调用者是否已将方法调用放入已检查的块中 checked unchecked块始终是方法的本地块 关键字影响如何为块中的语句和表达式生成 IL 它不会传播到调用的方法 并且无法
  • 如何在 Google Drive 上为 Google Colab 安装 conda?

    wget https repo anaconda com miniconda Miniconda3 py37 4 8 2 Linux x86 64 sh chmod x Miniconda3 py37 4 8 2 Linux x86 64
  • Linq、表达式、NHibernate 和 Like 比较

    我试图根据确定比较类型的外部参数 通过搜索表单传递 进行类似的比较 string or string or string 我朝以下方向思考 query query Where Entity StringProperty Like Searc
  • setItemWidget 导致崩溃

    我正在尝试添加一个QLabel to a QTreeWidgetItem但Python崩溃了setItemWidget call 有什么想法为什么会崩溃吗 这是代码 from PySide import QtCore QtGui view
  • 如何使用 pyglet 显示 numpy 数组?

    我有一个尺寸为 100 100 的标签矩阵 存储为 numpy 数组 我想用 pyglet 显示该矩阵 我最初的想法是使用这个矩阵通过函数 pyglet image ImageData 形成一个新的 pyglet 图像 它需要图像数据的缓冲
  • 如何在本地加载 wasm 模块?

    我正在尝试使用 JavaScript 和 WebAssembly 制作一个简单的 独立的 只有一个 html 文件和一个 wasm 文件 离线数据可视化 但是 我在从本地文件加载 WASM 模块时遇到问题 第一个麻烦是CORS 尝试使用亲戚