@
3dwelcome 2021 年的今天,wasm 依旧没办法直接操作 dom (请不要说通过调用某个 js 提供的库进行操作),且 wasm 基本是用于解决 CPU 密集的并行任务的(比如音视频解码),我所说的交互逻辑指的是:对 UI 界面有大量的交互操作,产生的状态需要实时展示,状态的数量级在 4 位数左右,上述产生的状态不需要关系存储,频繁的读写操作发生在客户端的内存或缓存中。
综上所述,wasm 目前( 2021 年)并没有提供对前端强交互场景的强力支持,只是对一些垂直领域,例如:音视频的简单编码,加密文档生成提供了一些支持。你提出 wasm 并不能很好的支持你的论点
且上述 wasm 提供的特性,对转译成 wasm 的程序的原始代码有一定要求:
1 、 并发计算。wasm 目前没有提供 webwork 的调用
2 、 系统 API 支持,例如 linux 的 fork
再讨论 wasm+三方库可操作 dom 的方案。这一方案中,由于 wasm 的运行,目前仍然依赖 JS 胶水脚本,对 wasm 暴露的 event 进行调用。所以,如果在非 CPU 密集场景下,使用 wasm 甚至会带来系统性能的降低。