Categories
程式開發

WICG引入了展現鎖定,實現更快的Web渲染


Web孵化社區群組(Web Incubator Community Group,WICG)最近引入了展現鎖定(Display Locking)提案,該提案可以輕鬆提高瀏覽器頁面內容量並對渲染進行控制。

該提案適應多種使用場景,包括快速展現非常大的HTML文檔,滾動顯示大量內容,異步預渲染不可見的內容供後續展現,以及更快速地度量佈局。該提案試圖在不破壞Web特性和佈局計算的情況下避免加載和渲染不可見的內容,並且為開發人員提供一種靈活性,使其能夠在不向終端用戶屏幕展現的情況下將內容預先渲染出來。

目前,DOM是原子渲染的,隨著站點和應用規模的增長,渲染也會耗費越來越長的時間。現在,我們所採用的技術包括隱藏不可見的內容或虛擬化,但是這些方式有一些限制,並且有可靠性方面的潛在問題。

展現鎖定提案引入了三個新特性:

  • rendersubtree屬性,控制一個DOM子樹是否要渲染。該屬性可以被瀏覽器或其他的用戶終端所修改,並且會觸發一個MutationObserver事件,開發人員可以對事件進行響應。
  • content-size屬性,為rendersubtree屬性標記為不可見的內容分配一個佔位符的大小。
  • Element對象的updateRendering方法,預渲染rendersubtree屬性標記為不可見的子樹中的內容。

在起草該提案時,WICG考慮了多個備選方案,包括contain: strictdisplay:nonevisibility: hidden等CSS屬性,但是對於開發人員和用戶終端來說,這些方案都缺乏足夠的控制。

在現今的Web瀏覽器中,目前還沒有該提案的實現。該提案還處於早期階段,提案鼓勵相關人員加入展現鎖定社區群組來提供反饋Web孵化社區群組(WICG)為提出和討論新的Web平台特性提供了一個輕量級的場所。每個提案都會在群組的Github賬戶的repository中進行討論。該群組的成員資格對所有人開放,但所有參與者必須首先簽署W3C社區貢獻者許可證協議(W3C Community Contributor License Agreement)。

原文鏈接:

Faster Web Rendering with WICG Display Locking Proposal