1.Virtual DOM:
用來描述頁面DOM樹節(jié)點之間關(guān)系的一種特殊JavaScript對象
2.為了讓用戶盡可能快速看到內(nèi)容特笋?
將一部分內(nèi)容先展示給用戶,然后根據(jù)用戶的操作酗电,異步加載用戶需要的其他內(nèi)容
如使用更高壓縮比webp格式的圖片
合理地利用文件緩存
3.從我們打開瀏覽器輸入一個網(wǎng)址到頁面展示網(wǎng)頁內(nèi)容的這段時間內(nèi),瀏覽器和服務(wù)端都發(fā)生了什么事情?
在接收到用戶輸入的網(wǎng)址后晒喷,瀏覽器會開啟一個線程來處理這個請求愚争,對用戶輸入的URL地址進(jìn)行分析判斷映皆,如果是HTTP協(xié)議就按照HTTP方式來處理挤聘。
調(diào)用瀏覽器引擎中的對應(yīng)方法,比如WebView中的loadUrl方法捅彻,分析并加載這個URL地址组去。
通過DNS解析獲取該網(wǎng)站地址對應(yīng)的IP地址,查詢完成后連同瀏覽器的Cookie步淹、userAgent等信息向網(wǎng)站目的IP發(fā)出GET請求从隆。
進(jìn)行HTTP協(xié)議會話,瀏覽器客戶端向Web服務(wù)器發(fā)送報文缭裆。
進(jìn)入網(wǎng)站后臺上的Web服務(wù)器處理請求键闺,如Apache、Tomcat澈驼、Node.js等服務(wù)器艾杏。
進(jìn)入部署好的后端應(yīng)用,如PHP盅藻、Java购桑、JavaScript、Python等后端程序氏淑,找到對應(yīng)的請求處理邏輯勃蜘,這期間可能會讀取服務(wù)器緩存或查詢數(shù)據(jù)庫等。
服務(wù)器處理請求并返回響應(yīng)報文假残,此時如果瀏覽器訪問過該頁面缭贡,緩存上有對應(yīng)資源,會與服務(wù)器最后修改記錄對比辉懒,一致則返回304阳惹,否則返回200和對應(yīng)的內(nèi)容。
瀏覽器開始下載HTML文檔(響應(yīng)報頭狀態(tài)碼為200時)或者從本地緩存讀取文件內(nèi)容(瀏覽器緩存有效或響應(yīng)報頭狀態(tài)碼為304時)眶俩。
瀏覽器根據(jù)下載接收到的HTML文件解析結(jié)構(gòu)建立DOM(Document Object Model莹汤,文檔對象模型)文檔樹,并根據(jù)HTML中的標(biāo)記請求下載指定的MIME類型文件(如CSS颠印、JavaScript腳本等)纲岭,同時設(shè)置緩存等內(nèi)容。
頁面開始解析渲染DOM线罕,CSS根據(jù)規(guī)則解析并結(jié)合DOM文檔樹進(jìn)行網(wǎng)頁內(nèi)容布局和繪制渲染止潮,JavaScript根據(jù)DOM API操作DOM,并讀取瀏覽器緩存钞楼、執(zhí)行事件綁定等喇闸,頁面整個展示過程[…]”
4. 瀏覽器內(nèi)核主要指的就是渲染引擎
5.渲染樹:
css樣式
1.布局:position, float, margin
2.元素自身顯示樣式
color燃乍, background唆樊, text-shadow
6.DOM元素標(biāo)簽是指文本化的HTML標(biāo)識,而DOM元素對象則是指經(jīng)過渲染引擎DOM解析后生成的具有節(jié)點父子關(guān)系的樹形對象
7.判斷是否使用瀏覽器端文件緩存
1.cache-contorl 是否過期 (相對過期時間)
沒過期走緩存橘沥。
過期判斷
2.是否有Etag窗轩,
有 帶if-None-Match去請求服務(wù)器
沒有
3.判斷是否有Last_Modified
有 帶if-Modified-Since去服務(wù)請求
沒有 向服務(wù)請求
8.瀏覽器持久化緩存技術(shù)
1.使用瀏覽器多個標(biāo)簽頁打開同個域名頁面時夯秃,localStorage內(nèi)容一般是共享的座咆。
2.sessionStorage和localStorage的功能類似,但是sessionStorage在瀏覽器關(guān)閉時會自動清空仓洼。
3.Cookie的最大長度限制為4KB介陶,和localStorage類似,不同域名之間的Cookie信息也是獨立的
4.Cookie分為兩種:Session Cookie和持久型Cookie
Session Cookie一般不設(shè)置過期時間色建,表示該Cookie的生命周期為瀏覽器會話期間哺呜,只要關(guān)閉瀏覽器窗口,Cookie就會消失
Session Cookie一般不保存在硬盤上而是保存在內(nèi)存里箕戳, 持久cookie保存在硬盤里
9.Chrome的擴(kuò)展功能
打開chrome://chrome-urls 查看chrome的擴(kuò)展插件
chrome://version/ //查看系統(tǒng)信息
chrome://inspect/ //查看連接設(shè)備調(diào)試信息
chrome://downloads //瀏覽器下載管理
chrome://settings/ //瀏覽器設(shè)置