欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

瀏覽器從輸入URL到渲染完頁面的整個過程是怎么樣的?

2022-05-29    分類: 網站建設


 瀏覽器的主要功能是將用戶選擇的web資源呈現出來,它從服務器請求資源,并將得到的資源(HTML,PDF,image等等)顯示在瀏覽器窗口。那么從用戶敲入URL到完整渲染出來,經歷了什么過程呢?也就是說整個瀏覽器的工作流程是怎樣的呢?

整個過程大致如下:


       1. 輸入URL,瀏覽器根據域名尋找IP地址
 2. 瀏覽器發(fā)送一個HTTP請求給服務器,如果服務器返回以301之類的重定向,瀏覽器根據相應頭中的location再次發(fā)送請求
 3. 服務器接受請求,處理請求生成html代碼,返回給瀏覽器,這時的html頁面代碼可能是經過壓縮的
 4. 瀏覽器接收服務器響應結果,如果有壓縮則首先進行解壓處理
 5. 瀏覽器開始顯示HTML

     6. 瀏覽器發(fā)送請求,以獲取嵌入在HTML中的對象。在瀏覽器顯示HTML時,它會注意到需要獲取其他地址內容的標簽。


這時,瀏覽器會發(fā)送一個獲取請求來重新獲得這些文件——包括CSS/JS/圖片等資源,這些資源的地址都要經歷一個和HTML讀取類似的過程。所以瀏覽器會在DNS中查找這些域名,發(fā)送請求,重定向等等…

 那么,一個頁面,究竟是如何從我們輸入一個網址到最后完整的呈現在我們面前的呢?還需要了解一下瀏覽器是如何渲染的。
首先是用戶輸入url,瀏覽器通過DNS查詢要訪問頁面的IP,查詢到后,瀏覽器會替用戶去向這個IP地址發(fā)送請求拉取html文件,瀏覽器會派GUI線程去解析加載回來的html文件

html解析過程:01機器碼-》charter字符-》tokens令牌-》node節(jié)點-》dom樹


解析CSS,構建CSSOM
有了骨骼以后,接下來就是確定長相了,這是CSS要做的事情。和解析HTML類似,CSS解析各種樣式信息,生成網頁的“外觀”。但是有個問題,CSSA(class選擇器)說,我喜歡藍色,我家網頁的所有文字都要是藍色。CSSB(id選擇器)就不樂意了,憑啥啊,我喜歡紅色,我家的標題必須是紅色。由于id選擇器是親生的,那就標題是紅色的吧,于是不同選擇器就有了不同的權重。最后生成CSSOM

因為瀏覽器解析文檔,如果遇到請求外部資源時,如圖像,iconfont,JS等。瀏覽器將下載該資源。請求過程是異步的,并不會影響HTML文檔進行加載,當遇到 <script>標簽的時候,會立即解析腳本,停止解析文檔(因為JS可以操作DOM和CSS,可能會改動DOM和CSS,所以繼續(xù)解析會造成浪費)。如果腳本是外部的,會等待腳本下載完畢,再繼續(xù)解析文檔。所以常見的做法是將js放到頁腳部分。

   

構建Render Tree(呈現樹)


骨骼和長相都有了,那就組合到一起唄,DOM和CSSOM根據一定的規(guī)則組合起來生成了Render Tree。

 布局(Layout)


創(chuàng)建渲染樹后,接下來正式開工,確定各個元素的位置,包括元素在視圖中的位置以及自身的大小,將其安置在瀏覽器的正確位置。


繪制(Painting)


這個階段,瀏覽器會遍歷呈現樹,并調用呈現器的“paint”方法,將前期所有的工作結合到一起,將網頁的內容呈現出來。如果網頁只是HTML+CSS,那么可能就到此結束了,but還有神奇的JS呢,請看回流和重繪。

回流(Reflow)和重繪(Repaint)


如果這個時候我寫了用JS操作了DOM,將網頁的所有元素設置float:left,那么問題來了,上面兩步的工作白干了,推翻從新再來。如果將所有元素的顏色改變了(并沒有改變結構),比如color:red,還好還好,上面一步的工作白干,推翻重來??梢韵胂笠幌拢阈列量嗫嗉影嘁粋€月終于完成工作,產品經理來了一句:“好像要改一下需求…”
頁面在首次加載時必然會經歷reflow和repaint。reflow和repaint過程是非常消耗性能的,尤其是在移動設備上,它會破壞用戶體驗,有時會造成頁面卡頓。所以我們應該盡可能少的減少reflow和repaint。

所以,盡可能少操作DOM,提升網頁的性能。


總結一下:


       1. 解析HTML
 2. 構建DOM樹
 3. DOM樹與CSS樣式進行附著構造呈現樹(render樹)
 4. 布局
 5. 繪制
上述這個過程是逐步完成的,為了更好的用戶體驗,渲染引擎將會盡可能早的將內容呈現到屏幕上,并不會等到所有的html都解析完成之后再去構建和布局render樹。它是解析完一部分內容就顯示一部分內容,同時,可能還在通過網絡下載其余內容。

當前題目:瀏覽器從輸入URL到渲染完頁面的整個過程是怎么樣的?
瀏覽地址:http://aaarwkj.com/news20/160520.html

成都網站建設公司_創(chuàng)新互聯,為您提供ChatGPT、網站建設、Google、標簽優(yōu)化、域名注冊、企業(yè)建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

小程序開發(fā)
日韩亚洲精品99综合观看| 日本一区二区国产在线| 亚洲欧美制服另类国产| 男人的天堂成人午夜视频| 国产精品国产不卡在线| 97视频观看免费观看| 开裆丝袜高跟啪啪高潮av| 欧美日韩一区二区激情在线| 18岁禁看网站在线看| 亚洲精品一区二区日本| 亚洲精品隔壁傲慢人妻| 精品亚洲国产一区二区三区| 伊人性伊人情亚洲综合| 国产一区日本二区欧美三区| 免费在线观看欧美色妇| 欧美精品在,欧美一区二区| 午夜福利一区二区在线| 熟女肥臀一区二区三区| 亚洲男人天堂av电影| 日韩美女毛片啪啪响| 给我免费在线观看视频| 日本道二区视频中文字幕| 日本一区二区三区高清不卡| 声入人心第一季在线观看| 91精品大片免费在线观看| 国产日产精品久久婷婷色| 91久久精品91久久性色| 一级欧美黄片在线播放| 日韩一区二区三区无吗电影| 中文字幕亚洲无级av| 亚洲男人天堂中文字幕| 2021亚洲精品午夜精品国产| 人妻少妇中文字幕在线播放| 国产一区二区三区本色| 欧美精品国产精品久久| 亚洲日本在线观看一区| 国产又粗又长在线视频| 丰满人妻被猛烈进入中| 在线天堂一区二区三区| 亚洲欧美韩国日本成人综合| 日本二区三区在线视频|