999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

瀏覽器工作原理

2020-07-29 12:11:31崔滔
計算機與網(wǎng)絡(luò) 2020年10期
關(guān)鍵詞:引擎規(guī)則內(nèi)容

崔滔

Web瀏覽器無疑是用戶訪問互聯(lián)網(wǎng)很常見的入口,其借免安裝和跨平臺等優(yōu)勢,逐漸取代了很多傳統(tǒng)的客戶端。

Web瀏覽器通過向URL發(fā)送網(wǎng)絡(luò)請求來訪問Web服務(wù)器資源,并以交互性的方式展示這些內(nèi)容。基本操作包括獲取、處理、顯示和存儲,常見的瀏覽器包括Internet Explorer,F(xiàn)irefox,Chrome,Safari,Opera等。

用戶界面

這是用戶與瀏覽器發(fā)生交互的區(qū)域。瀏覽器的外觀沒有特定的標(biāo)準(zhǔn),HTML5規(guī)范沒有規(guī)定UI元素該長什么樣,但是列出了一些常見元素:地址欄、個人信息欄、滾動條、狀態(tài)欄和工具欄等。

瀏覽器引擎

它提供了UI與底層渲染引擎之間的接口,根據(jù)用戶交互進(jìn)行查詢和操控渲染引擎,提供初始化加載URL的方法,并負(fù)責(zé)重新加載、返回和前進(jìn)等操作。

渲染引擎

渲染引擎負(fù)責(zé)在屏幕上顯示網(wǎng)頁內(nèi)容,其主要工作是解析HTML。渲染引擎默認(rèn)可展示HTML、XML和圖片,還可以通過插件或擴展程序支持其他數(shù)據(jù)類型。

Web內(nèi)容渲染過程大致如下:

HTML數(shù)據(jù)轉(zhuǎn)成DOM

來自網(wǎng)絡(luò)層的請求內(nèi)容在渲染引擎中接收(通常是8 KB的塊),然后將原始字節(jié)轉(zhuǎn)換為HTML文件中的字符(基于字符編碼)。接著詞法分析器進(jìn)行詞法分析,將輸入分解為各種標(biāo)記(token),在標(biāo)記化過程中,文件中的每個開始和結(jié)束標(biāo)簽都被記錄下來。它知道如何去掉不相關(guān)的字符,比如空格和換行符。

接著,解析器進(jìn)行語法分析,通過分析文檔結(jié)構(gòu),應(yīng)用語言語法規(guī)則構(gòu)造解析樹。解析過程是迭代進(jìn)行的,它向詞法分析器請求新的token,如果匹配語法規(guī)則,token就被添加到解析樹中,然后再請求另一個token。如果沒有匹配的規(guī)則,解析器將在內(nèi)部存儲token,并不斷請求新token,直到找到匹配所有內(nèi)部存儲token的規(guī)則。如果沒有找到規(guī)則,解析器將拋出異常,說明文檔無效或包含語法錯誤。

這些節(jié)點在文檔對象模型(DOM)樹數(shù)據(jù)結(jié)構(gòu)中互相鏈接,建立父子關(guān)系、相鄰兄弟關(guān)系。

CSS數(shù)據(jù)轉(zhuǎn)成CSSOM

CSS數(shù)據(jù)原始字節(jié)被轉(zhuǎn)換成字符、token和節(jié)點,最終變成CSS對象模型(CSSOM)。CSS的層級特性決定了元素會應(yīng)用什么樣式。元素的樣式數(shù)據(jù)可以來自父元素(通過繼承),也可以直接在元素上設(shè)置。瀏覽器需要遞歸遍歷CSS樹結(jié)構(gòu)來確定特定元素的樣式。

DOM與CSSOM組成渲染樹

DOM樹包含了HTML元素之間的關(guān)系信息,CSSOM樹則包含了這些元素的樣式信息。從根節(jié)點開始,瀏覽器會遍歷每一個可見節(jié)點,有些節(jié)點是隱藏的(通過CSS控制),不會出現(xiàn)在渲染結(jié)果中。對于每個可見節(jié)點,瀏覽器找到CSSOM中定義的相關(guān)規(guī)則進(jìn)行匹配,最終這些節(jié)點會帶著內(nèi)容和樣式出現(xiàn)在渲染樹中。

布局

接下來進(jìn)行內(nèi)容布局。內(nèi)容的實際尺寸和位置需要經(jīng)過計算才能渲染到頁面上,這個過程也叫重排(reflow)。HTML采用基于流的布局模型,也就是說大部分情況下,幾何位置是一次性計算出來的(內(nèi)容大小或位置發(fā)生變化,需要重新計算)。這個過程是從文檔根元素開始,遞歸完成的。

繪制

通過遍歷每個渲染器,并調(diào)用paint方法在屏幕上顯示內(nèi)容。繪制過程可以是全局的(繪制整個樹),也可以是增量的(渲染樹在屏幕上驗證某個矩形區(qū)域),操作系統(tǒng)在這些特定節(jié)點上生成繪制事件,整個樹不受影響。繪制是一個漸進(jìn)的過程,其中一部分在被解析和渲染過后,而該過程將繼續(xù)處理其余部分。

JavaScript解析器(JS引擎)

JavaScript是一種腳本語言,可動態(tài)更新Web內(nèi)容、控制多媒體和動畫等,這些是通過瀏覽器的JS引擎完成的。DOM和CSSOM提供了JS接口,都可以通過JS修改,由于瀏覽器不確定某些JS會做什么,因此它會在遇到script標(biāo)簽后會立即暫停構(gòu)建DOM樹。

JS解析器在接收到服務(wù)器發(fā)送來的代碼后,會立即進(jìn)行解析,代碼被轉(zhuǎn)換成機器能理解的對象表示形式。保存了所有解析信息的對象叫做抽象語法樹(AST),這些對象又被解析器轉(zhuǎn)換成字節(jié)碼。這種編譯方式叫做(Just In Time,JITs),也就是Java Script從服務(wù)器下載后在客戶端實時編譯。解析器和編譯器是組合使用的,解析器立即處理源代碼,編譯器則生成機器碼,客戶端操作系統(tǒng)可直接運行。

UI Back End用于繪制基礎(chǔ)控件,比如復(fù)選框和窗口等。底層使用操作系統(tǒng)的用戶界面方法,暴露通用的接口,跟平臺無關(guān)。

數(shù)據(jù)存儲層

這是持久化層,輔助瀏覽器保存一些數(shù)據(jù)(比如cookies,session storage,indexed DB,Web SQL和書簽以及用戶的偏好設(shè)置等)。HTML5規(guī)范提出了瀏覽器端的完整數(shù)據(jù)庫功能。

網(wǎng)絡(luò)層

這一層處理瀏覽器的各種網(wǎng)絡(luò)通信,瀏覽器使用各種通信協(xié)議獲取網(wǎng)絡(luò)資源,比如HTTP,HTTPs,F(xiàn)TP等。

瀏覽器用DNS解析URL,這些解析記錄緩存在瀏覽器、操作系統(tǒng)、路由器或者ISP中。如果請求的URL不在緩存中, ISP的DNS服務(wù)器首先發(fā)起DNS查詢,找到正確的IP地址后,瀏覽器使用特定的協(xié)議與服務(wù)器建立連接。瀏覽器向服務(wù)器發(fā)送SYN數(shù)據(jù)包,詢問服務(wù)器是否打開了TCP連接,服務(wù)器用SYN/ACK數(shù)據(jù)包響應(yīng)作為前面SYN的應(yīng)答,瀏覽器接收到應(yīng)答后,再向服務(wù)器發(fā)送ACK數(shù)據(jù)包。通過這樣的3次握手就建立了TCP連接,一旦建立了連接,就可以傳輸數(shù)據(jù)了。傳輸數(shù)據(jù)過程中必須遵守HTTP協(xié)議的相關(guān)要求,包括請求和響應(yīng)的規(guī)則等。

瀏覽器比較

如今市面上有各種不同的瀏覽器,盡管核心功能都是相同的,但是它們之間的區(qū)別也是多方面的。包括平臺(Linux,Windows,Mac,BSD以及其他Unix系統(tǒng))、協(xié)議、用戶界面、HTML5支持情況、是否開源和所有權(quán)等。

猜你喜歡
引擎規(guī)則內(nèi)容
內(nèi)容回顧溫故知新
撐竿跳規(guī)則的制定
數(shù)獨的規(guī)則和演變
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
TPP反腐敗規(guī)則對我國的啟示
主要內(nèi)容
臺聲(2016年2期)2016-09-16 01:06:53
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發(fā)
One Engine Left只剩下一個引擎
主站蜘蛛池模板: 国产人人射| 国产激爽爽爽大片在线观看| 在线网站18禁| 免费欧美一级| 午夜福利免费视频| 成AV人片一区二区三区久久| 在线a视频免费观看| 国产成人综合日韩精品无码首页 | 日本a级免费| 久夜色精品国产噜噜| 91精品久久久无码中文字幕vr| 99热免费在线| 久久亚洲黄色视频| 日本免费高清一区| 成人噜噜噜视频在线观看| 欧美高清国产| 亚洲第一极品精品无码| 亚洲欧美不卡视频| 亚洲男人的天堂在线观看| 亚洲成人动漫在线| 亚洲天堂在线视频| 国产微拍一区二区三区四区| 制服无码网站| 一级毛片在线播放| 精品成人免费自拍视频| 99在线观看精品视频| 亚洲人免费视频| 欧美成人二区| 中文字幕2区| 久久久久亚洲AV成人人电影软件| 狂欢视频在线观看不卡| 精品国产aⅴ一区二区三区 | 日本尹人综合香蕉在线观看| 免费aa毛片| 欧美日韩国产精品综合| 人人91人人澡人人妻人人爽| 色悠久久久| 91视频免费观看网站| 国产成人喷潮在线观看| 欧美日韩另类国产| 亚洲无码一区在线观看| 日本免费高清一区| 亚洲综合中文字幕国产精品欧美| 亚洲熟女偷拍| 黄色片中文字幕| 久久免费视频6| 黄色网在线免费观看| 日韩欧美中文在线| 欧美啪啪网| 中国一级特黄大片在线观看| 一级不卡毛片| 国产91麻豆免费观看| yjizz国产在线视频网| 色男人的天堂久久综合| 中文字幕 日韩 欧美| 亚洲视频四区| 国产在线观看99| 欧美一级片在线| 亚洲精品中文字幕无乱码| 国产成人精品免费视频大全五级| a毛片基地免费大全| 久久国产亚洲偷自| 不卡无码网| 一级全黄毛片| 99成人在线观看| 白浆免费视频国产精品视频| 国产精品一老牛影视频| 在线综合亚洲欧美网站| 日日拍夜夜嗷嗷叫国产| 一本大道视频精品人妻| 欧亚日韩Av| 日本精品αv中文字幕| 色天天综合| 亚洲精品无码AⅤ片青青在线观看| 片在线无码观看| 国产国产人成免费视频77777 | 国产色偷丝袜婷婷无码麻豆制服| 性视频久久| 一级毛片在线播放| 一级毛片不卡片免费观看| 国产专区综合另类日韩一区| 亚洲中文字幕无码爆乳|