AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

大型DOM結構是如何影響交互性的

來源: 責編: 時間:2023-09-25 10:36:15 283觀看
導讀沒有辦法繞過這一點:當你構建一個網(wǎng)頁時,該頁面一定會有一個文檔對象模型(DOM)。DOM代表了你頁面HTML的結構,并為JavaScript和CSS提供了訪問頁面結構和內(nèi)容的途徑。然而,問題在于DOM的大小會影響瀏覽器快速和高效地渲染頁面

tLZ28資訊網(wǎng)——每日最新資訊28at.com

沒有辦法繞過這一點:當你構建一個網(wǎng)頁時,該頁面一定會有一個文檔對象模型(DOM)。DOM代表了你頁面HTML的結構,并為JavaScript和CSS提供了訪問頁面結構和內(nèi)容的途徑。tLZ28資訊網(wǎng)——每日最新資訊28at.com

然而,問題在于DOM的大小會影響瀏覽器快速和高效地渲染頁面的能力。一般來說,DOM越大,最初渲染該頁面以及稍后在頁面生命周期中更新其渲染就越昂貴。tLZ28資訊網(wǎng)——每日最新資訊28at.com

這在具有非常大的DOM的頁面上會變得問題重重,因為修改或更新DOM的交互會觸發(fā)昂貴的布局工作,從而影響頁面快速響應的能力。昂貴的布局工作可能會影響頁面從交互到下一次繪制(INP)的速度;如果你希望頁面能快速響應用戶交互,確保你的DOM大小只有必要的大小是很重要的。tLZ28資訊網(wǎng)——每日最新資訊28at.com

什么時候頁面的DOM過大?

了解DOM元素和DOM節(jié)點之間的區(qū)別非常重要。DOM元素是指DOM樹中的一個特定HTML元素。DOM節(jié)點與DOM元素有重疊的含義,但其定義擴展到包括注釋、空白和文本。雖然Lighthouse的DOM大小審計是指DOM節(jié)點,但本指南將盡可能地提到DOM元素而不是節(jié)點。tLZ28資訊網(wǎng)——每日最新資訊28at.com

根據(jù) Lighthouse,當頁面的DOM大小超過1400個節(jié)點時,就過大了。當頁面的DOM超過 800個節(jié)點時,Lighthouse 將開始發(fā)出警告。以以下HTML為例:tLZ28資訊網(wǎng)——每日最新資訊28at.com

<ul>  <li>List item one.</li>  <li>List item two.</li>  <li>List item three.</li></ul>

在上面的代碼中,有四個DOM元素:<ul> 元素及其三個 <li> 子元素。你的網(wǎng)頁幾乎肯定會有比這更多的節(jié)點,因此了解你可以如何控制DOM大小是很重要的——以及一旦你讓頁面的DOM盡可能小,其他優(yōu)化渲染工作的策略。tLZ28資訊網(wǎng)——每日最新資訊28at.com

大型DOM如何影響頁面性能?

大型 DOM以幾種方式影響頁面性能:tLZ28資訊網(wǎng)——每日最新資訊28at.com

  1. 在頁面的初始渲染期間。當 CSS 應用于頁面時,會創(chuàng)建一個類似于 DOM 的結構,稱為 CSS 對象模型(CSSOM)。隨著CSS選擇器特異性的增加,CSSOM變得更復雜,需要更多的時間來完成繪制網(wǎng)頁所需的布局、樣式、合成和繪制工作。這增加了頁面加載初期交互的延遲。
  2. 當交互修改DOM時,無論是通過元素的插入或刪除,還是通過修改DOM內(nèi)容和樣式,渲染該更新所需的工作可能會導致非常昂貴的布局、樣式、合成和繪制工作。與頁面的初始渲染一樣,CSS選擇器特異性的增加會增加交互導致的HTML元素插入到DOM時的渲染工作。
  3. 當 JavaScript 查詢DOM時,對 DOM 元素的引用存儲在內(nèi)存中。例如,如果你調(diào)用 document.querySelectorAll 來選擇頁面上的所有<div> 元素,如果結果返回大量的DOM元素,內(nèi)存成本可能會相當可觀。

圖片tLZ28資訊網(wǎng)——每日最新資訊28at.com

所有這些都會影響交互性,但上面列表中的第二項尤為重要。如果一個交互導致DOM的改變,它可能觸發(fā)大量的工作,從而導致頁面上不良的交互到下一次繪制(INP)。tLZ28資訊網(wǎng)——每日最新資訊28at.com

如何測量DOM大小?

可以用幾種方式來測量DOM大小。第一種方法是使用Lighthouse。當你運行一個審計時,當前頁面的DOM統(tǒng)計信息將出現(xiàn)在"Diagnostics"標題下的"Avoid an excessive DOM size"審計部分。在這一部分中,你可以看到DOM元素的總數(shù)、包含最多子元素的DOM元素,以及最深的DOM元素。tLZ28資訊網(wǎng)——每日最新資訊28at.com

更簡單的方法是在任何主要瀏覽器的開發(fā)者工具中使用JavaScript控制臺。要獲取DOM中HTML元素的總數(shù),你可以在頁面加載后在控制臺中使用以下代碼:tLZ28資訊網(wǎng)——每日最新資訊28at.com

document.querySelectorAll('*').length;

請注意,上面的代碼片段僅包括DOM中HTML元素的數(shù)量。它不包括DOM中的所有節(jié)點。tLZ28資訊網(wǎng)——每日最新資訊28at.com

如果你想實時查看DOM大小的更新,你也可以使用性能監(jiān)視工具。使用這個工具,你可以將布局和樣式操作(以及其他性能方面)與當前的DOM大小進行關聯(lián)。tLZ28資訊網(wǎng)——每日最新資訊28at.com

圖片tLZ28資訊網(wǎng)——每日最新資訊28at.com

果DOM的大小接近Lighthouse DOM大小的警告閾值,或者完全不合格,下一步就是找出如何減小DOM的大小,以提高你的頁面對用戶交互的響應能力,從而改善你網(wǎng)站的交互到下一次繪制(INP)。tLZ28資訊網(wǎng)——每日最新資訊28at.com

如何測量受交互影響的DOM元素數(shù)量?

如果你在實驗室中分析一個你懷疑與頁面DOM大小有關的慢速交互,你可以通過選擇標有“重新計算樣式”的性能分析器中的任何活動,并觀察底部面板中的上下文數(shù)據(jù)來了解有多少DOM元素受到了影響。tLZ28資訊網(wǎng)——每日最新資訊28at.com

圖片tLZ28資訊網(wǎng)——每日最新資訊28at.com

在上面的截圖中,注意到當選中時,樣式重新計算的工作顯示了受影響元素的數(shù)量。雖然上面的截圖顯示了一個具有多個DOM元素的頁面上DOM大小對渲染工作影響的極端案例,但這種診斷信息在任何情況下都是有用的,以確定DOM的大小是否是響應交互到下一幀繪制所需時間的限制因素。tLZ28資訊網(wǎng)——每日最新資訊28at.com

如何減小DOM大小?

除了審查你網(wǎng)站的HTML以刪除不必要的標記外,減小DOM大小的主要方法是減小DOM深度。如果你在瀏覽器開發(fā)者工具的“Elements”選項卡中看到像這樣的標記,那么你的DOM可能不必要地過深:tLZ28資訊網(wǎng)——每日最新資訊28at.com

<div>  <div>    <div>      <div>        <!-- Contents -->      </div>    </div>  </div></div>

當你看到這樣的模式時,你可能可以通過扁平化你的DOM結構來簡化它們。這樣做將減少DOM元素的數(shù)量,并可能給你一個機會來簡化頁面樣式。tLZ28資訊網(wǎng)——每日最新資訊28at.com

DOM深度也可能是你使用的框架的一個癥狀。特別是,基于組件的框架(如依賴于JSX的那些)要求你在父容器中嵌套多個組件。tLZ28資訊網(wǎng)——每日最新資訊28at.com

然而,許多框架允許你通過使用所謂的片段(fragments)來避免嵌套組件。提供片段功能的基于組件的框架包括但不限于以下幾種:tLZ28資訊網(wǎng)——每日最新資訊28at.com

  • React
  • Preact
  • Vue
  • Svelte

通過在你選擇的框架中使用片段,你可以減小DOM深度。如果你擔心扁平化DOM結構對樣式有影響,你可能會從使用更現(xiàn)代(和更快)的布局模式(如flexbox或grid)中受益。tLZ28資訊網(wǎng)——每日最新資訊28at.com

考慮其他策略

即使你努力扁平化你的DOM樹并移除不必要的HTML元素以保持你的DOM盡可能小,它仍然可能相當大,并且在響應用戶交互時觸發(fā)大量的渲染工作。如果你發(fā)現(xiàn)自己處于這種情況,有一些其他策略你可以考慮以限制渲染工作。tLZ28資訊網(wǎng)——每日最新資訊28at.com

考慮一種增量方法

你可能處于這樣一個位置,即頁面的大部分在首次渲染時對用戶來說并不可見。這可能是通過在啟動時省略DOM的那些部分來懶加載HTML的一個機會,但在用戶與需要最初隱藏的頁面部分進行交互時再將它們添加進去。tLZ28資訊網(wǎng)——每日最新資訊28at.com

限制CSS選擇器的復雜性

當瀏覽器解析你的CSS中的選擇器時,它必須遍歷DOM樹以了解這些選擇器是如何(以及是否)應用于當前布局的。這些選擇器越復雜,瀏覽器就需要做更多的工作,以便進行頁面的初始渲染,以及如果頁面因交互而發(fā)生變化時增加樣式重新計算和布局工作。tLZ28資訊網(wǎng)——每日最新資訊28at.com

使用 content-visibility 屬性

CSS提供了 content-visibility 屬性,這實際上是一種懶加載屏幕外DOM元素的方法。當這些元素接近視口時,它們會根據(jù)需要進行渲染。content-visibility 的好處不僅在于大幅減少了初始頁面渲染時的渲染工作量,而且在頁面DOM因用戶交互而改變時,也會跳過屏幕外元素的渲染工作。tLZ28資訊網(wǎng)——每日最新資訊28at.com

結論

將你的DOM大小減少到只有嚴格必需的部分是優(yōu)化網(wǎng)站INP(Interaction to Next Paint,交互到下一次繪制)的一個好方法。通過這樣做,你可以減少瀏覽器在DOM更新時進行布局和渲染工作所需的時間。即使你不能有意義地減小DOM大小,也有一些技術你可以用來將渲染工作隔離到一個DOM子樹,例如CSS containment和 content-visibility CSS屬性。tLZ28資訊網(wǎng)——每日最新資訊28at.com

無論你如何去做,創(chuàng)造一個最小化渲染工作的環(huán)境,以及減少頁面響應交互時所做的渲染工作,結果將是你的網(wǎng)站在用戶與其交互時會感覺更加響應靈敏。這意味著你的網(wǎng)站將具有更低的INP,從而轉(zhuǎn)化為更好的用戶體驗。tLZ28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-11236-0.html大型DOM結構是如何影響交互性的

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Go語言高級特性解析與實踐

下一篇: 實用!Python自動化數(shù)據(jù)處理:輕松處理重復工作

標簽:
  • 熱門焦點
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺競技

    旗艦機基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據(jù)博主數(shù)碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現(xiàn)已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • 不容錯過的MSBuild技巧,必備用法詳解和實踐指南

    一、MSBuild簡介MSBuild是一種基于XML的構建引擎,用于在.NET Framework和.NET Core應用程序中自動化構建過程。它是Visual Studio的構建引擎,可在命令行或其他構建工具中使用
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個人開發(fā)仿造稿定設計的圖片編輯器到現(xiàn)在,不知不覺已過去一年時間了,期間我經(jīng)歷了裁員失業(yè)、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日
  • 2023年,我眼中的字節(jié)跳動

    此時此刻(2023年7月),字節(jié)跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關注的互聯(lián)網(wǎng)公司之一。從2016-17年的抖音強勢崛起,到2018年的&ldquo;頭騰
  • 騰訊蓋樓,字節(jié)拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之&ldquo;想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!&rdquo;曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 華為舉行春季智慧辦公新品發(fā)布會 首次推出電子墨水屏平板

    北京時間2月27日晚,華為在巴塞羅那舉行春季智慧辦公新品發(fā)布會,在海外市場推出之前已經(jīng)在中國市場上市的筆記本、平板、激光打印機等辦公產(chǎn)品,并首次推出搭載
  • 由于成本持續(xù)增加,筆記本產(chǎn)品價格預計將明顯上漲

    根據(jù)知情人士透露,由于材料、物流等成本持續(xù)增加,筆記本產(chǎn)品價格預計將在2021年下半年有明顯上漲。進入6月下旬以來,全球半導體芯片缺貨情況加劇,顯卡、處理器
  • 榮耀Magic4 至臻版 首創(chuàng)智慧隱私通話 強勁影音系統(tǒng)

    2022年第一季度臨近尾聲,在該季度內(nèi),許多品牌陸續(xù)發(fā)布自己的最新產(chǎn)品,讓大家從全新的角度來了解當今的手機技術。手機是電子設備中,更新迭代十分迅速的一款產(chǎn)品,基
Top