為什么要了解瀏覽器加載、解析、渲染這個(gè)過(guò)程?
了解瀏覽器如何進(jìn)行加載,我們可以在引用外部樣式文件,外部js時(shí),將他們放到合適的位置,使瀏覽器以最快的速度將文件加載完畢。
了解瀏覽器如何進(jìn)行解析,我們可以在構(gòu)建DOM結(jié)構(gòu),組織css選擇器時(shí),選擇最優(yōu)的寫(xiě)法,提高瀏覽器的解析速率。
了解瀏覽器如何進(jìn)行渲染,明白渲染的過(guò)程,我們?cè)谠O(shè)置元素屬性,編寫(xiě)js文件時(shí),可以減少”重繪“”重新布局“的消耗。
這三個(gè)過(guò)程在實(shí)際進(jìn)行的時(shí)候又不是完全獨(dú)立,而是會(huì)有交叉。會(huì)造成一邊加載,一邊解析,一邊渲染的工作現(xiàn)象。
瀏覽器是如何進(jìn)行加載、解析、渲染的呢?
1.用戶(hù)訪問(wèn)網(wǎng)頁(yè),DNS服務(wù)器(域名解析系統(tǒng))會(huì)根據(jù)用戶(hù)提供的域名查找對(duì)應(yīng)的IP地址,找到后,系統(tǒng)會(huì)向?qū)?yīng)IP地址的網(wǎng)絡(luò)服務(wù)器發(fā)送一個(gè)http請(qǐng)求。
2.網(wǎng)絡(luò)服務(wù)器解析請(qǐng)求,并發(fā)送請(qǐng)求給數(shù)據(jù)庫(kù)服務(wù)器。