除了HTML、CSS与JS,现在WASM也是标准Web语言
大家應(yīng)該知道,萬維網(wǎng)聯(lián)盟?W3C 認(rèn)證的 Web 語言有 HTML、CSS 與 JavaScript,而近日聯(lián)盟正式宣布 WebAssembly 核心規(guī)范(WebAssembly Core Specification)成為官方 Web 標(biāo)準(zhǔn),這意味著 WebAssembly 成為了第 4 種 Web 語言。
WebAssembly 也叫 WASM,它是為基于棧的虛擬機(jī)設(shè)計(jì)的二進(jìn)制指令格式,WASM?作為可移植目標(biāo),用于編譯高級(jí)語言(如 C/C++/Rust),從而可以在?Web 上部署高性能客戶端和服務(wù)器應(yīng)用,同時(shí)它也可以在許多其它環(huán)境中使用。
WebAssembly 描述了一種內(nèi)存安全的沙箱執(zhí)行環(huán)境,該環(huán)境甚至可以在現(xiàn)有 JavaScript 虛擬機(jī)內(nèi)部實(shí)現(xiàn)。當(dāng)嵌入到 Web 中時(shí),WebAssembly 將強(qiáng)制執(zhí)行瀏覽器的同源和權(quán)限安全策略。
WASM 有多種實(shí)現(xiàn),包括瀏覽器和獨(dú)立系統(tǒng),它可以用于視頻和音頻編解碼器、圖形和 3D、多媒體和游戲、密碼計(jì)算或便攜式語言實(shí)現(xiàn)等應(yīng)用。
目前 1.0 版本的 Wasm 已經(jīng)支持 Chrome、Firefox、Safari 與 Edge 瀏覽器。
對(duì)于 Web 來說,因?yàn)槠涮摂M指令集設(shè)計(jì),WebAssembly 可讓加載的頁面以本地編譯代碼運(yùn)行,從而可以提高 Web 性能。
換句話說,WebAssembly 可以實(shí)現(xiàn)接近本地的性能,并且優(yōu)化加載時(shí)間,同時(shí)最重要的是,它可以作為現(xiàn)有代碼庫的編譯目標(biāo)。
盡管本地類型數(shù)量很少,但相對(duì)于 JavaScript 而言,性能的提高大部分歸功于其對(duì)一致類型的使用。WebAssembly 對(duì)編譯語言進(jìn)行了數(shù)十年的優(yōu)化,其字節(jié)代碼針對(duì)緊湊性和流傳輸進(jìn)行了優(yōu)化。在下載其它代碼時(shí),網(wǎng)頁便可以開始執(zhí)行。網(wǎng)絡(luò)和 API 訪問通過附帶的 JavaScript 庫進(jìn)行,安全模型則與 JavaScript 相同。
W3C 同時(shí)公布了 WASM 接下來的開發(fā)重點(diǎn),新特性包括:
Threading,線程
Threading 提供了共享內(nèi)存多線程和原子內(nèi)存訪問的優(yōu)勢(shì)。
Fixed-width?SIMD,固定寬度 SIMD
并行執(zhí)行循環(huán)的向量操作。
Reference types 引用類型
允許 WebAssembly 代碼直接引用宿主對(duì)象。
Tail calls,尾調(diào)用
直接調(diào)用而不使用額外的堆棧空間。
ECMAScript module integration,ECMAScript 模塊集成
通過將 WebAssembly 可執(zhí)行文件加載為 ES6 模塊來與 JavaScript 進(jìn)行交互。
此外還有一些一直在跟進(jìn)的特性,包括垃圾回收、調(diào)試接口與 WebAssembly 系統(tǒng)接口(WASI)等。
值得一提的是,上個(gè)月 Mozilla、Fastly、Intel 與 Red Hat 宣布成立聯(lián)合組織?Bytecode Alliance(字節(jié)碼聯(lián)盟),該聯(lián)盟旨在通過協(xié)作實(shí)施標(biāo)準(zhǔn)和提出新標(biāo)準(zhǔn),以完善 WebAssembly 在瀏覽器之外的生態(tài)。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的除了HTML、CSS与JS,现在WASM也是标准Web语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core Blazor 1-B
- 下一篇: C# Lazy Loading