第 4 种 Web 语言来了:WebAssembly

据 W3C 官网本月宣布,WebAssembly 正式成为 World Wide Web Consortium (W3C) 的标准,加入到了 HTML、CSS 和 JavaScript 的行列。WebAssembly 也正式抵达了 1.0 版本,它已获得了主流浏览器 Firefox、Chrome、Safari 和 Edge 的支持。

WebAssembly 源于 Mozilla 发起的 Asm.js 项目,也被称为 wasm,设计补充 JavaScript,其本地解码速度比 JS 解析快得多,让高性能的 Web 应用在浏览器上运行成为可能。

WebAssembly是一种新的二进制格式,它可以方便地将C/C++等静态语言的代码快速地“运行”在浏览器中,这一特性为前端密集计算场景提供了无限可能。不仅如此,通过WebAssembly技术,我们还可以将基于Unity等游戏引擎开发的大型游戏快速地移植到Web端。WebAssembly技术现在已经被计划设计成W3C的标准,众多浏览器厂商已经提供了对其MVP版本标准的支持。在Google I/O 2017大会上,Google首次针对WebAssembly技术进行了公开演讲和推广,其Post-MVP版本标准更是对诸如DOM操作、多线程和GC等特性提供了支持。WebAssembly所带来的Web技术变革势不可挡。

WebAssembly 增加了混淆程度,因此目前它也被很多恶意网站利用去隐藏恶意目的。德国的一项研究分析了 Alexa 排名前一百万的网站,发现使用 WebAssembly 的网站比例约为六百分之一,但其中一半是将其用于恶意目的,如挖掘数字货币或混淆恶意代码。

WebAssembly的优点:

1、快速、高效性

WebAssembly是一种可移植的字节码格式,字节码以二进制格式传输,由于模块的结构,可以通过浏览器并行编译,以便进一步加快速度,使其能够以接近原生性能的速度运行。它是为诸如C、C++和Rust等低级源语言提供一个高效的编译目标而设计的。

2、可移植性

可以将Webassembly移植到其他平台。这意味着,如果用编译为WebAssembly的语言编写软件,就能够在.NET上运行它。它允许我们重用Web上现有的JavaScript基础结构。

WebAssembly代码在不同平台上能够以接近本地速度运行。

3、可读、可调试

WebAssembly是一种低级的类汇编语言,但是它设计了一个非常规整的、人类可读的文本格式,这允许通过手动来编写代码,查看代码以及调试代码。

4、安全性

WebAssembly运行在一个沙箱化的执行环境中,甚至可以在现有的 JavaScript 虚拟机中实现。在web环境中,WebAssembly将会严格遵守同源策略以及浏览器安全策略。

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/2990.html

发表评论

登录后才能评论