【拓展】1171- 2021 年在 Web 領(lǐng)域有哪些關(guān)鍵進(jìn)展?
大家好,我是 ConardLi, W3C 年度全球技術(shù)大會(huì)(TPAC 2021)在今年10月份舉辦,隨后他們發(fā)布了今年 10 月份的 W3C工作重點(diǎn)報(bào)告。

這份報(bào)告匯總了今年4月份以來在 Web 領(lǐng)域的一些關(guān)鍵進(jìn)展,我挑了一些我比較感興趣的,大家一起來看一下吧。
W3C
可能很多小伙伴對 W3C 還不太了解,萬維網(wǎng)聯(lián)盟(World Wide Web Consortium,簡稱 W3C)創(chuàng)建于1994年,是 Web 技術(shù)領(lǐng)域最具權(quán)威和影響力的國際中立性技術(shù)標(biāo)準(zhǔn)機(jī)構(gòu)。

W3C 目前包括 42 個(gè)工作組和 10 個(gè)興趣組 ,我們熟知的很多 Web 標(biāo)準(zhǔn)都由 W3C 定制:
超文本標(biāo)記語言( HTML)文檔對象模型 ( DOM)可擴(kuò)展標(biāo)記語言( XML)幫助殘障人士有效獲得 Web內(nèi)容的信息無障礙指南(WCAG)
各種瀏覽器的內(nèi)核實(shí)現(xiàn)不同,導(dǎo)致頁面解析出來的效果可能會(huì)有差異,所以各種瀏覽器都需要按照統(tǒng)一的標(biāo)準(zhǔn)來實(shí)現(xiàn)。
這些標(biāo)準(zhǔn)有效促進(jìn)了 Web 技術(shù)的互相兼容,對互聯(lián)網(wǎng)技術(shù)的發(fā)展和應(yīng)用起到了基礎(chǔ)性和根本性的支撐作用。
下面,我們一起來看看 Web 領(lǐng)域的一些最新技術(shù)進(jìn)展。
小程序
MiniApps 指混合移動(dòng)應(yīng)用程序,小巧、免安裝、加載速度快,使用 Web 技術(shù)(尤其是 CSS 和 JavaScript)并與 Native Apps 的功能集成,也就是我們常說的小程序。

MiniApps工作組 今年發(fā)布了多個(gè)公開草案:
5月11日發(fā)布 MiniApp Manifest草案:規(guī)范為應(yīng)用程序manifest提供了額外的元數(shù)據(jù)來描述。6月15日發(fā)布 MiniApp Lifecycle草案:定義了小程序生命周期的事件與管理小程序及各個(gè)小程序頁面的生命周期流程。11月30日發(fā)布 MiniApp Packaging草案:定義了MiniApp打包文件的語義和一致性要求,以及包含MiniApp資源文件的單個(gè)文件容器結(jié)構(gòu),包括配置文件、靜態(tài)頁面模版、樣式表、JavaScript文檔、媒體文件以及其他資源。
音頻 - Web Audio 1.0
Web 音頻工作組 今年6月份發(fā)布 Web Audio API 1.0 為 W3C 正式推薦標(biāo)準(zhǔn), 為 Web 平臺(tái)添加了直接從 Web 瀏覽器操作音樂和創(chuàng)建音頻的標(biāo)準(zhǔn)方法,包括協(xié)作和交互方式。

目前所有主流瀏覽器已實(shí)現(xiàn) Web Audio 1.0 規(guī)范,支持在瀏覽器中合成音頻。瀏覽器提供一個(gè) AudioContext 對象,該對象用于生成一個(gè)聲音的上下文,與揚(yáng)聲器相連。
const?audioContext?=?new?AudioContext();
然后,獲取音源文件,將其在內(nèi)存中解碼,就可以播放聲音了。
const?context?=?new?AudioContext();
fetch('code秘密花園.mp4')
.then(response?=>?response.arrayBuffer())
.then(arrayBuffer?=>?context.decodeAudioData(arrayBuffer))
.then(audioBuffer?=>{
//?播放聲音
const?source?=?context.createBufferSource();
????source.buffer?=?audioBuffer;
????source.connect(context.destination);
????source.start();
});
Web 文本編輯 - 虛擬鍵盤API
Web 文本編輯工作組 在今年8月提交了 虛擬鍵盤API 公開草案。
VK(Virtual Keyboard)是指在沒有硬件鍵盤的情況下,可用于輸入的屏幕鍵盤。

VirtualKeyboard API 為開發(fā)者提供了對虛擬鍵盤(VK)可見性的更好控制,以及在 VK 可見性改變時(shí)調(diào)整網(wǎng)頁布局的更大能力。
partial?interface?Navigator?{
????[SecureContext,?SameObject]?readonly?attribute?VirtualKeyboard?virtualKeyboard;
};
[Exposed=Window,?SecureContext]
interface?VirtualKeyboard?:?EventTarget?{
????undefined?show();
????undefined?hide();
????readonly?attribute?DOMRect?boundingRect;
????attribute?boolean?overlaysContent;
????attribute?EventHandler?ongeometrychange;
};
機(jī)器學(xué)習(xí) - ?Web 神經(jīng)網(wǎng)絡(luò) API
Web 機(jī)器學(xué)習(xí)工作組 于今年4月份正式成立。

成立后的兩個(gè)月,Web 機(jī)器學(xué)習(xí)工作組 發(fā)布了 Web 神經(jīng)網(wǎng)絡(luò) API。

該標(biāo)準(zhǔn)中描述了專門用于神經(jīng)網(wǎng)絡(luò)推理硬件加速的 API,包括了人物檢測、人臉識(shí)別、超級分辨率、圖像標(biāo)題、情感分析、噪聲抑制等常見應(yīng)用。

WebRTC - Encoded Transform

媒體捕獲和媒體流 (Media Capture and Streams) 和屏幕捕獲 (Screen Capture) 目前已經(jīng)發(fā)布為 W3C 正式推薦標(biāo)準(zhǔn)。

WebRTC工作組 目前已將工作重點(diǎn)轉(zhuǎn)向增加其他 API,例如 WebRTC編碼轉(zhuǎn)換 (WebRTC Encoded Transform) ,它將與其他技術(shù)一起,在Web瀏覽器上完成從端到端的加密視頻會(huì)議。
瀏覽器自動(dòng)化測試 - WebDriver API 2.0
WebDriver API 是 W3C 在 2018 推出的的一個(gè)標(biāo)準(zhǔn),是一個(gè)遠(yuǎn)程控制協(xié)議,它提供了跨平臺(tái)和跨語言的方式來遠(yuǎn)程操控瀏覽器,它提供了一系列接口來訪問和操作 DOM,進(jìn)而控制瀏覽器的行為。它使得 web 開發(fā)者能寫一些自動(dòng)化腳本來測試網(wǎng)頁。

不過因?yàn)樗目鐬g覽器兼容性問題,目前應(yīng)用并不廣泛。瀏覽器測試與工具工作組 正在開發(fā) WebDriver API 2.0 版本,目的是能夠像開發(fā)者工具一樣監(jiān)控瀏覽器中發(fā)生的內(nèi)部狀態(tài)變化,并解決它的跨瀏覽器兼容性問題。
身份認(rèn)證 - ?WebAuthn Level 3
Web 身份驗(yàn)證工作組 今年4月發(fā)布了 Web 身份驗(yàn)證 Level 3 的第一版公開工作草案。

WebAuthn,即Web Authentication,是一個(gè)用于在瀏覽器上進(jìn)行認(rèn)證的 API,W3C 將其表述為 "An API for accessing Public Key Credentials",即“一個(gè)用于訪問公鑰憑證的 API”。
WebAuthn 很強(qiáng)大,強(qiáng)大到被認(rèn)為是 Web 身份認(rèn)證的未來。你有想過通過指紋或者面部識(shí)別來登錄網(wǎng)站嗎?WebAuthn 就能在保證安全和隱私的情況下讓這樣的想法成為現(xiàn)實(shí)。
Web支付 - Payment Request API
支付請求 API(Payment Request API 1.0)現(xiàn)已發(fā)布為 W3C 提案推薦標(biāo)準(zhǔn),并且最近有望成為正式推薦標(biāo)準(zhǔn)。
當(dāng)用戶嘗試從你的網(wǎng)站購買商品時(shí),網(wǎng)站必須要求用戶提供付款信息以及其他信息(比如收貨信息)。Payment Request API 就是來幫助我們做這件事情的,下面是一個(gè)小 Demo:
//?支付方式
const?paymentMethods?=?[{
??supportedMethods:?'https://xxx.xyz/pay',
??data:?{
????...?//?支付應(yīng)用提供的自定義參數(shù).
??}
}];
//?付款詳情
const?paymentDetails?=?{
??displayItems:?[{
????label:?'code秘密花園',
????amount:?{?currency:?'USD',?value:?'22.15'?}
??}],
??total:?{
????label:?'ConardLi',
????amount:?{?currency:?'USD',?value?:?'22.15'?}
??}
};
const?request?=?new?PaymentRequest(paymentMethods,?paymentDetails);
分散式標(biāo)識(shí)符 - DID 標(biāo)準(zhǔn)
分散式標(biāo)識(shí)符工作組在今年8月提交了 DID 標(biāo)識(shí)符 1.0,這是一個(gè)區(qū)塊鏈領(lǐng)域的技術(shù),目前 W3C 還在審閱中,未正式發(fā)布。

標(biāo)準(zhǔn)定義了分散式標(biāo)識(shí)符(DID),一種用于可驗(yàn)證的去中心化數(shù)字身份的新型標(biāo)識(shí)符。DID 標(biāo)識(shí)的對象(例如:人、組織、事物、數(shù)據(jù)模型、抽象實(shí)體等)由 DID 控制者決定。
DID 的基礎(chǔ)是將身份控制權(quán)交還給互聯(lián)網(wǎng)用戶,并授權(quán)他們使用自己信任的系統(tǒng)生成唯一的標(biāo)識(shí)符。通過使用加密證明(如數(shù)字簽名)對這些標(biāo)識(shí)符進(jìn)行認(rèn)證,個(gè)人和組織都可以利用區(qū)塊鏈的分布式賬本技術(shù)(DLT)從無縫、安全和私有的數(shù)據(jù)交換中獲益。
Web字體 - 增量字體傳輸
Web字體工作組 在今年9月發(fā)布了 增量字體傳輸規(guī)范 的首個(gè)公開工作草案:
規(guī)范定義了從服務(wù)器到客戶端增量傳輸字體的兩種方法。增量傳輸允許客戶端僅加載它們實(shí)際需要的字體部分,從而提升字體加載速度并減少加載字體所需的數(shù)據(jù)傳輸。
其他
Web 應(yīng)用程序安全工作組發(fā)布了關(guān)于Post-Spectre Web開發(fā)的新說明。GPU for the Web 工作組正在開發(fā)WebGPU與WebGPU Shading Language規(guī)范,將 GPU 的功能引入 Web 圖形和計(jì)算。Web Transport 工作組正在開發(fā)WebTransport API規(guī)范,該API可能成為低延遲媒體流方案(直播、云游戲)的一項(xiàng)技術(shù)。沉浸式 Web 工作組正在完善WebXR Device API規(guī)范及其配套規(guī)范,以實(shí)現(xiàn) VR/AR 體驗(yàn)。
參考
https://www.w3.org/2021/10/TPAC/ https://www.w3.org/2021/10/w3c-highlights/Overview.html

回復(fù)“加群”與大佬們一起交流學(xué)習(xí)~
點(diǎn)擊“閱讀原文”查看 130+ 篇原創(chuàng)文章
