2022-06-17 分類: 網(wǎng)站建設(shè)
Facebook的網(wǎng)站速度做為最樞紐的公司任務(wù)之一。
1. 哀求解析:Web服務(wù)器解析和完整性檢查的HTTP哀求。重疊Web服務(wù)器的天生時(shí)間與瀏覽器的渲染時(shí)間,我們不僅可以減少終極的時(shí)間延遲,也能使網(wǎng)頁(yè)更早顯示用戶可見(jiàn)區(qū)域給用戶,從而大大減少用戶對(duì)延遲的感知。
為了更好的了解BigPipe,我們需要了解一下現(xiàn)有的動(dòng)態(tài)Web服務(wù)系統(tǒng),它的歷史可以追溯到萬(wàn)維網(wǎng)的初期,但現(xiàn)在與初期比擬卻并沒(méi)有多少改變?,F(xiàn)代網(wǎng)站有著遠(yuǎn)遠(yuǎn)高于10年前的動(dòng)態(tài)效果和互動(dòng)性,但傳統(tǒng)的網(wǎng)頁(yè)服務(wù)系統(tǒng)早已無(wú)法跟上當(dāng)今互聯(lián)網(wǎng)速度的要求。然而,這些優(yōu)化卻很少涉及Web服務(wù)器和瀏覽器的執(zhí)行順序造成的瓶頸。任何一個(gè)查詢延遲都將拖慢整個(gè)終極文件的天生。
2. JavaScript中下載:瀏覽器下載網(wǎng)頁(yè)中JavaScript引用的資源。當(dāng)Web服務(wù)器完成天生頁(yè)面,并將其發(fā)送到瀏覽器,瀏覽器則成為機(jī)能瓶頸并且Web服務(wù)器對(duì)其無(wú)從匡助。這是類似于大多數(shù)現(xiàn)代微處理器的流水線執(zhí)行過(guò)程:多重指令管線通過(guò)不同的處理器執(zhí)行單元,以達(dá)到機(jī)能的好。在傳統(tǒng)的模式,用戶哀求的生命周期如下:
BigPipe是一個(gè)重新設(shè)計(jì)的基礎(chǔ)動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)體系。一些如延時(shí)加載JavaScript、并行下載等優(yōu)化技術(shù)已被網(wǎng)絡(luò)社區(qū)廣泛采用,以此來(lái)克服的一些限制。
3. 標(biāo)記天生:Web服務(wù)器天生的響應(yīng)的HTML標(biāo)記。
4. CSS的下載:瀏覽器下載網(wǎng)頁(yè)的CSS的要求。固然 BigPipe是對(duì)現(xiàn)有的服務(wù)網(wǎng)絡(luò)基礎(chǔ)過(guò)程的重新設(shè)計(jì),但它卻不需要改變現(xiàn)有的網(wǎng)絡(luò)瀏覽器或服務(wù)器,它完全使用PHP和JavaScript來(lái)實(shí)現(xiàn)。大體思路是,分解網(wǎng)頁(yè)成叫做Pagelets的小塊,然后通過(guò)Web服務(wù)器和瀏覽器建立管道并治理他們?cè)诓煌A段的運(yùn)行。當(dāng)Web服務(wù)器正忙天生一個(gè)頁(yè)面,瀏覽器處于閑置狀態(tài),鋪張其周期無(wú)所事事。在本文中,我將向大家先容我們的秘密武器之一,我們稱之為BigPipe的偉大底層技術(shù)。正如流水線微處理器劃分一個(gè)指令的生命周期為(如“取指令”,“指令解碼”,“執(zhí)行”,“寫(xiě)回寄存器”等)多個(gè)階段,BigPipe的頁(yè)面天生過(guò)程分為以下幾個(gè)階段:
BigPipe如何工作
Web服務(wù)器的產(chǎn)生時(shí)間和瀏覽器的渲染時(shí)間重疊,是特別有用的,如Facebook這樣內(nèi)容豐碩的網(wǎng)站。
5. 網(wǎng)絡(luò)傳輸:響應(yīng)從Web服務(wù)器傳送到瀏覽器。
要利用該Web服務(wù)器和瀏覽器之間的并行性,BigPipe首先分解網(wǎng)頁(yè)成多個(gè)可調(diào)用的Pagelets。
6. CSS資源下載后,瀏覽器解析它們,并將它們應(yīng)用到DOM樹(shù)。在傳統(tǒng)的網(wǎng)頁(yè)呈現(xiàn)模式的用戶將不得不等到這些查詢數(shù)據(jù)都返回并天生終極文件,然后將其發(fā)送到用戶的電腦。
7. 瀏覽器解析Web服務(wù)器的響應(yīng),使用HTML文件構(gòu)建了一個(gè)的DOM樹(shù),并且下載引用的CSS和JavaScript文件。
8. DOM樹(shù)結(jié)構(gòu)和CSS樣式:瀏覽器構(gòu)造的DOM文檔樹(shù),然后應(yīng)用它的CSS規(guī)則。
9. Web服務(wù)器解析哀求,然后讀取數(shù)據(jù)存儲(chǔ)層,制定一個(gè)HTML文件,并用一個(gè)HTTP響應(yīng)把它發(fā)送到客戶端。一個(gè)典型的Facebook的網(wǎng)頁(yè)包含很多來(lái)源不同的數(shù)據(jù)資料:摯友名單,摯友動(dòng)態(tài),廣告等。
10. HTTP響應(yīng)通過(guò)互聯(lián)網(wǎng)傳送到瀏覽器。而恰是我們的工程師團(tuán)隊(duì)的幾個(gè)樞紐的立異使它成為可能。
11. JavaScript資源下載后,瀏覽器解析并執(zhí)行它們。
傳統(tǒng)模式在現(xiàn)代網(wǎng)站中效率長(zhǎng)短常低下的,由于良多系統(tǒng)的操縱順序,不能互相重疊。在2009年,我們成功地實(shí)現(xiàn)了Facebook網(wǎng)站速度晉升兩倍 。
12. 瀏覽器發(fā)送一個(gè)HTTP哀求到Web服務(wù)器。
13. 數(shù)據(jù)獲?。篧eb服務(wù)器從存儲(chǔ)層獲取數(shù)據(jù)。
當(dāng)前標(biāo)題:高性能的“流水線技術(shù)”網(wǎng)頁(yè)
分享網(wǎng)址:http://jinyejixie.com/news/168586.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、標(biāo)簽優(yōu)化、做網(wǎng)站、自適應(yīng)網(wǎng)站、App開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容