首頁 web前端 html教學 HTML解析原理說明

HTML解析原理說明

Mar 08, 2017 pm 03:52 PM
html

  標準的web前端工程師需要知道 ◎瀏覽器(或對應播放器)的渲染/重繪原理 

       這我得加把勁了。我真的說的不是很清楚,我就G下,結果不是很多,找到了有一個,就記下來了。 。 。

  以下部分來自handawei-javaeye的blog: 

  Web頁面運作在各種各樣的瀏覽器當中,瀏覽器載入、渲染頁面的速度直接影響著使用者體驗
  簡單地說,頁面渲染就是瀏覽器將html程式碼根據CSS定義的規則顯示在瀏覽器視窗中的這個過程。先來大致了解瀏覽器都是怎麼工作的:
  1. 使用者輸入網址(假設是html頁面,並且是第一次造訪),瀏覽器向伺服器發出請求,伺服器傳回html檔;
  2. 瀏覽器開始載入html程式碼,發現

標籤內有一個標籤引用外部CSS檔案;
  3. 瀏覽器又發出CSS檔案的請求,伺服器回傳這個CSS檔案;
  4.瀏覽器繼續載入 html中部分的程式碼,並且CSS檔案已經拿到手了,可以開始渲染頁面了;
  5.瀏覽器在程式碼中發現一個HTML解析原理說明標籤引用了一張圖片,向伺服器發出請求。此時瀏覽器不會等到圖片下載完,而是繼續渲染後面的程式碼;
  6. 伺服器返回圖片文件,由於圖片佔用了一定面積,影響了後面段落的排布,因此瀏覽器需要回過頭來重新渲染這部分程式碼;
  7.瀏覽器發現了一個包含一行Javascript程式碼的<script>標籤,趕快運行它;<br/>  8. Javascript腳本執行了這條語句,它命令瀏覽器隱藏掉程式碼中的某個<div> (style.display=”none”)。杯具啊,突然就少了這麼一個元素,瀏覽器不得不重新渲染這部分代碼;<br/>  9. 終於等到了的到來,瀏覽器淚流滿面……<br/>  10.等等,還沒完,用戶點了一下介面中的「換膚」按鈕,Javascript讓瀏覽器換了一下<link>標籤的CSS路徑;<br/>  11. 瀏覽器召集了在座的各位<div&gt ;<span><ul><li>們,“大夥兒收拾行李,咱得重新來過……”,瀏覽器向服務器請<br/>  求了新的CSS文件,重新渲染頁面。 <p> <p> <p>  瀏覽器每天就這麼來回跑著,要知道不同的人寫出來的html和css程式碼品質參差不齊,說不定哪天跑著跑著就掛掉了。還好這個世界還有這麼一群人——頁面重構工程師,平時挺不起眼,也就幫視覺設計師們切切圖啊改改字,其實背地裡還是乾了不少實事的。 <p>說到頁面為什麼會慢?那是因為瀏覽器要花時間、花精力去渲染,尤其是當它發現某個部分發生了點變化影響了佈局,需要倒回去重新渲染,內行稱這個回退的過程叫reflow。 <p style="max-width:90%"><img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/963/493/887/1488959472280777.jpg" class="lazy" title="HTML解析原理說明" alt="HTML解析原理說明" style="max-width:90%" style="max-width:90%"/><p>   reflow幾乎是無法避免的。現在介面上流行的一些效果,例如樹狀目錄的折疊、展開(實質上是元素的顯示與隱藏)等,都將引起瀏覽器的 reflow。滑鼠滑過、點擊……只要這些行為引起了頁面上某些元素的佔位面積、定位方式、邊距等屬性的變化,都會引起它內部、周圍甚至整個頁面的重新渲染。通常我們都無法預估瀏覽器到底會reflow哪一部分的程式碼,它們都彼此互相影響。 <p style="text-align: center;"><img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/435/481/759/1488959491648314.jpg" class="lazy" title="HTML解析原理說明" alt="HTML解析原理說明" style="max-width:90%" style="max-width:90%"/><p>  reflow問題是可以最佳化的,我們可以盡量減少不必要的reflow。例如開頭的例子中的<img alt="HTML解析原理說明" >圖片載入問題,這其實就是一個可以避免的reflow-給圖片設定寬度和高度就可以了。這樣瀏覽器就知道了圖片的佔位面積,在載入圖片前就預留了位置。 <p>另外,有個跟reflow看起來差不多的術語:repaint,中文叫重繪。如果只是改變某個元素的背景色、文字顏色、邊框顏色等等不影響它周圍或內部佈局的屬性,只會引起瀏覽器repaint。 repaint的速度明顯快於reflow(在IE下需要換一下說法,reflow要比repaint 慢)。下次將透過一系列的實驗說明在Firefox、IE等瀏覽器下reflow的最佳化。 <p><br/>#</script>

以上是HTML解析原理說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

See all articles