Web上十大重量級API家族


Web上十大重量級API家族


Web上的API太多啦,這裏主要指主流瀏覽器chromium引擎提供的龐大標準庫,其中JavaScript標準樹的葉子屬性或函數的數量就有大幾千。這麼大規模的api自然要想辦法給他們分類,目前有許多分類標準:


  • 按名稱/時間分類:MDN官網是按照首字母分類的、W3C和WhatWG則按照標準推出的時間來分類。

  • 按硬件來分類:在cpu、gpu、內存、外存、網卡、IO設備中,所有的api分爲調用某個硬件或混合使用多個硬件。

  • 按體量分類:分爲單量級、微量級、輕量級、中量級、大量級、重量級、巨量級。

  • 是否在安全上下文環境(https)中才能使用,參考《拋棄HTTP的API們》


其中按體量分類沒有嚴格的標準,我們經常使用的API包括alert,console.log,setTimout這些都只是單個的函數,像包含許多子函數的console對象才能勉強稱之爲一個API家族,但console只能被貼上“輕量級”的標籤,因爲和其他API大家族相比,console簡直太小了。如果把所有API家族整合到一棵家族樹上,樹的主幹無疑就是V8的基本引擎:JavaScript/Html/CSS,也就是最常用的WebUI渲染引擎,無需多言。我們今天來談談家族樹上其他的巨大分支,我整理了10個巨量級的API家族,看看你認識幾個:



  • WebStorage:外存相關的API,包括sess/localStorage、indexDB/WebSQL、AsyncCaches(甚至cookies)。

  • WebGL:GPU圖形卡渲染驅動器,3D遊戲引擎。

  • WebRTCp2p即時通訊協議,音視頻壓縮算法。

  • WebAssembly:Web彙編指令集,原生內存堆棧空間接口。

  • WebComponents:WebUI擴展,虛擬DOM框架,安全組件化設計模式,可以自定義html元素。

  • ServiceWorker:WebApp的守護進程,WebDaemon後臺代理,包括PWA、WebWorkers多線程。

  • TypedArray:二進制字節流工具,包括Buffer處理器、Blob、File接口、Bitmap。

  • 2D graphics:矢量圖/位圖引擎,包括canvas、SVG標記語言、Image接口。

  • Math API數學標準庫,包括global.Math、MathML。

  • Streams:可讀可寫流,http請求工具Fetch。

  • WebLearning:【未完成】Web機器學習算法庫。



這10個API家族個個不簡單,想精通其中任何一項至少要花費3個月的學習時間,若想全部掌握這些API起碼得經過10000小時的科學訓練,但毫無疑問,在你全部掌握的那一刻,你已經是計算機領域的專家了(互聯網方向)。











本文分享自微信公衆號 - WebHub(myWebHub)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章