09 | WebAssembly 能够为 Web 前端框架赋能吗?
- 深入了解
- 翻译
- 解释
- 总结
WebAssembly(Wasm)作为一种新兴技术,对现代Web前端框架可能产生深远影响。文章探讨了几种方案,包括使用Wasm完全重写现有框架、使用Wasm重写框架的核心逻辑、使用Wasm增强应用的部分功能以及使用其他语言构建Web前端框架。其中,使用Wasm完全重写现有框架需要通过JavaScript以外的语言重写框架逻辑,并且在Wasm与JavaScript上下文之间的函数调用开销方面存在一些挑战。而使用Wasm重写框架的核心逻辑则更具现实意义,尤其适合处理计算密集型逻辑。这种方法可以提高性能,尤其适合处理大量的数学计算逻辑。另外,Wasm也可以与现有框架配合,用于优化应用的某一部分功能,例如数据编解码。此外,还有一种激进的方案是使用其他语言构建Web前端框架,如基于Rust语言的Yew框架。虽然Wasm的潜力尚未完全显露,但这些尝试为Web前端框架的发展带来了新的可能性。在已有的讨论中,React、Vue.js和Ember.js等流行的JavaScript框架也在探索与Wasm的结合,其中Ember.js尝试了与Wasm进行深度整合,但遇到了一些问题。总的来说,Wasm对现代Web前端框架的影响是多方面的,需要在实际应用中综合考虑其优势和挑战。
《WebAssembly 入门课》,新⼈⾸单¥29
全部留言(6)
- 最新
- 精选
- Yarco纯计算的话 貌似也许AI/机器学习可用Wasm? 有这块的内容吗?
作者回复: 是的,AI 和机器学习方面的 Wasm 实践还比较少,据我所知两个方面:虚拟机的话可以看一看 SSVM,它在宣传中擅长于 AI 和区块链等领域;库的话 tensorflow.js 最近好像是通过 Wasm 有了部分优化,还有 ONNX.js。再其他的就没有听说过太多消息了,毕竟目前 Post-MVP 中诸如 SIMD 都没有实现。
2020-09-234 - 奕目前 wasm 落地情况是怎么样的呢? 能不能使用与生产环境中的? 还是只能学习学习,为未来做个知识储备
作者回复: 是可以的哈,正如我在第10篇文章中展示的两个案例。虽然MVP的特性稍有局限性,但在某些场景中已经能够很好地来姐姐某些问题了。当然,如果暂时没有使用 Wasm 的需求,作为技术储备也是OK的。未来Wasm的发展将会影响到很多领域。
2020-09-242 - 不过落魄恰巧在目前 Wasm 的 MVP 标准中,我们也同样无法直接在 Wasm 字节码中操作 HTML 页面上的 DOM 元素。 是要表达:恰巧在目前 Web 的 MVP 标准中,我们也同样无法直接在 Wasm 字节码中操作 HTML 页面上的 DOM 元素。这一意思吗?
作者回复: 是在 Wasm 的 MVP 标准中哈。虽然 DOM 元素是 Web 平台上独有的,但对于 Wasm 字节码来说都是一样的不透明数据,因此暂时还无法在 Wasm 中直接引用。
2020-09-232 - Yixeu不好意思,我跨国前几章直接看的这一章。请问js glue code 具体是指什么?是要理解为js 开放给wasm 的api么?如果是的话,请问是wasm独有的,还是js统一开放出来的api。如果不是,请问怎么理解或者查阅这个glue code具体有些什么内容
作者回复: 关于 Glue Code,其实文中有所介绍,并不是特指的一类 API,而本质上讲就是 JavaScript 代码,这些 JS 代码主要用来帮助 Wasm 与 Web API 进行交互。Glue Code 一般由自己编写或者由类似 Emscripten 的工具链自动生成。后者可以在项目编译生成的产物中直接看到。
2021-01-071 - 极客酱酱尤大的说法: Not really. At this stage WebAssembly based solutions leads to questionable performance gain (wasm can't directly touch the DOM), large binary size (which actually reduces load performance), difficulty of debugging during development (can't just read the stack trace and the source code), significantly larger surface of maintenance (keeping both versions in sync), etc. It's simply not a reasonable trade-off for existing JavaScript frameworks. 没有。在这个阶段,基于 WebAssembly 的解决方案会导致可疑的性能提升(wasm 不能直接接触 DOM)、大二进制大小(这实际上降低了负载性能)、开发过程中的调试困难(不能只读取堆栈跟踪和源代码)、明显更大的维护表面(保持两个版本同步)等。对于现有的JavaScript框架来说,这根本不是一个合理的权衡。 The only case where a WASM-based frontend framework makes sense is to use a language other than JavaScript (e.g. people who prefer to write UI in Rust or C#). 基于 WASM 的前端框架有意义的唯一情况是使用 JavaScript 以外的语言(例如,喜欢用 Rust 或 C# 编写 UI 的人)。2023-09-04归属地:四川1
- 跳跳一枚使用 Blazor WebAssembly 的同学飘过。2022-01-19