Project Fugu 團隊的目標是讓開發人員可以在網站上執行任何平台專屬應用程式,因此團隊一直忙於新增缺少的功能,協助網頁程式開發人員填補不足之處。如果你不相信我,只要查看 Fugu API 追蹤程式的「已出貨」部分即可。以下是 55 個出貨的 API,按最近出貨順序由低到高排序:
這份清單很長,而且盤子中還有更多東西。目前仍有開發人員試用的 API 和功能 (也就是已實作,但仍在功能旗標之後),有些已經開始開發,也有許多需要考慮的 API 和功能。如您所見,現在該放鬆一下,表示我們已完成工作。
來源私人檔案系統的同步檔案方法
相反地,我們其實是剛起步,而不是宣告我們所做的努力。舉例來說,下方圖表顯示的是 navigator.storage.getDirectory()
方法的大幅增加相對用量成長,可做為來源私人檔案系統 (OPFS) 的進入點。例如,這種方法適用於 Photoshop 的高效能儲存空間需求,以及自 Web SQL 開始淘汰後 (甚至之前) 後,儲存空間社群非常感興趣。
現在 OPFS 的使用人數越來越多,相關要求也出現了。例如,在工作站結構定義中需要一套完全同步的檔案方法 (如需背景檔案,請參閱 whatwg/fs#7)。雖然新的 Web API 通常為非同步性質,但採用同步方法可以讓 Wasm 環境中的 OPFS 更加簡單,而且由於這是工作站中發生的問題,因此不會封鎖主執行緒。
改善硬體 API 的隱私權
另一個範例是硬體 API,可讓您連線至 HID、serial、USB、藍牙與 NFC 裝置。儘管部分 API 已推出一段時間,但直到近期無法忘記先前連線的裝置。現在,部分 API 採用了 forget()
方法。例如,以下說明如何清除先前連線的序列裝置,進而改善 API 的隱私性。
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
多螢幕視窗放置 API 的修正功能
最後一個範例是 Multi-Screen Window Placement API。其中,根據開發人員的意見回饋,先前的一般畫面標籤 (例如 "Internal Display 1"
) 已替換為更有意義的標籤 (例如 "Built-in Retina Display"
),以便使用者更輕鬆地將這些標籤與多螢幕設定的畫面建立關聯。
結論
正如這三個範例所示,Project Fugu 才能完成。繼續或開始使用我們的 API 並提供意見回饋由於所有 Fugu 規格均以 GitHub 公開的方式開發而成,因此您可以在對應的 GitHub 存放區提交規格問題,或是將您的想法加入現有問題中。如果您發現 Chrome 的實作錯誤,或發現實作方式與規格不同,請前往 new.crbug.com 回報錯誤。請務必盡可能提供更多詳細資料,並提供重現簡易的操作說明。
此外,如果您對瀏覽器支援有疑慮,許多 Fugu API 都有助於改進效能。請參閱「可擴充向量圖形程式碼:PWA 將光柵圖片轉換為 SVG 向量圖形」一文,尋找靈感。另外,除非這些 API 可以互通,否則我們不會將這項工作視為完成,且會繼續推動其他瀏覽器進一步標準化、測試及採用。