WebAssembly有一套完整的语义,实际上wasm是体积小且加载快的二进制格式,其目标就是充分发挥硬件能力以达到原始执行效率。
简单来书,WebAssembly就是一个转译器,将静态语言如C、C#转译为可以在浏览器中运行。
WebAssembly是一种可以使用非JavaScript编程语言编写代码并且能在浏览器上运行的技术方案(如Blazor),是一种新的字节码格式。
2019年12月5日,WebAssembly正式成为World Wide Web Consortium(W3C)的标准,加入到了HTML、CSS和JavaScript的行列。
![](https://ichistudio.cn/wp-content/uploads/2024/07/图片-2-1024x353.png)
JavaScript和WebAssembly可以互相调用。
如一些逻辑复杂的场景可以用WebAssembly去执行,然后JavaScript把代码读取出来,从而提高效率。
![](https://ichistudio.cn/wp-content/uploads/2024/07/图片-4-1024x592.png)
WebAssembly的优势
- 文件加载:WebAssembly文件体积更小,所以下载速度更快
- 解析:解码WebAssembly比解析JavaScript要快
- 编译和优化:编译和优化所需的时间较少,因为在将文件推送到服务器之前已经进行了更多优化,JS需要为动态类型多次编译代码
- 执行:执行可以更快,WebAssembly指令更接近机器码
- 安全:可以放HASH和签名等等
WebAssembly的使用场景
WebAssembly可用于视频和音频编解码器,图形和3D,多媒体和游戏,密码计算或便携式语言实现等领域。