什麼是DOCTYPE及做用html
DTD(document type definition,文檔類型定義)是一系列的語法規則,用來定義XML 或者(X)HTML的文件類型。瀏覽器會使用它來判斷文檔類型,決定使用何種協議來解析,以及切換瀏覽器模式瀏覽器
DOCTYPE是用來聲明文檔類型和DTD規範的,一個主要的用途是文件的合法性驗證。若是文件的代碼不合法,那麼瀏覽器解析時便會出一些差錯佈局
大白話解釋:DOCTYPE 告訴瀏覽器什麼文檔類型,瀏覽器根據這個進行使用何種引擎進行解析字體
常見的DOCTYPE:動畫
HTML5 <!DOCTYPE html>htm
HTML4.01 Stract(嚴格模式)該DTD 包含全部 HTML 元素和屬性,但不包括展現性和棄用的元素(好比 font)對象
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http:www.w4.org/TR//html4/strict.dtd">blog
HTML4.01 Transitional(寬鬆模式)該DTD包含全部HTML元素和屬性,包括展現性和棄用的元素(好比 font)圖片
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w4.org/TR/html4/loose.dtd">文檔
瀏覽器渲染過程:
整個過程以下圖片表示:
重排 Reflow
定義:DOM 結構中的各個元素都有本身的盒子(模型),這些都須要瀏覽器根據各類樣式來計算並根據計算結果將元素放到它該出現的位置,這個過程稱之爲 reflow
觸發 Reflow 的條件:
重繪 Repaint
定義:當各類盒子的位置、大小以及其餘屬性,例如顏色、字體大小等都肯定下來後,瀏覽器因而便把這些元素都按照各自的特性繪製了一遍,因而頁面的內容出現了,這個過程稱之爲 Repaint(大白話:頁面要呈現的內容統統畫在屏幕上就叫 Repaint)
觸發 Repaint 的條件:
如何避免最小程度的repaint 頻率
建立一個 document fragment,就算有N 個節點不要一個一個向瀏覽器添加,建立一個 documentfragment(document片斷)把這些東西都塞到這個片斷中,最後向瀏覽器一次添加這個片斷