通過依賴追蹤優(yōu)化網(wǎng)頁加載時間
日期:2016/3/5 / 人氣:
網(wǎng)頁臃腫的問題越來越嚴重。因此,旨在加速網(wǎng)頁加載速度的技術通常專注于數(shù)據(jù)壓縮也就不奇怪了。
但麻省理工學院計算機科學和人工智能實驗室 (CSAIL) 的研究人員們另辟蹊徑,試圖將網(wǎng)頁瀏覽中的一些冗余部分去除。他們推出了一款名為 Polaris 的工具,稱可以減少 34% 的網(wǎng)頁加載時間。
他們的技術專注于測繪網(wǎng)頁中不同對象之間的連接(又稱依賴),從而動態(tài)判斷瀏覽器加載不同依存元素的最有效路徑。
雖然以前也有人嘗試過“依賴追蹤”,但他們稱自己的方法能更“精細”地描繪這些關系,其他方法則專注于通過 HTML 標簽來比較詞法關系,因此不能捕捉到“更細微的依賴”。
博士生拉維·內(nèi)卓瓦利 (Ravi Netravali) 在談到 Polaris 和其他方法的不同之處時說道:“之前的工具根據(jù)其依賴圖所做的事是,盡量符合現(xiàn)在瀏覽器加載頁面的方式。因此,載入頁面時會先獲取 HTML 文件。HTML 文件中列出了許多東西,且按照一定的順序排列。這一順序就是這些工具看待依賴的方式。因此,如果某個對象出現(xiàn)在另一個對象上方,它們就認為瀏覽器應該先獲取出現(xiàn)在上面的對象。”
“我們發(fā)現(xiàn),這么做并不一定對。這并不一定就是這些對象的真實依賴關系。因此,我們的 Polaris 就以更精細的程度去追蹤這些對象的依賴關系。某個對象是不是在寫入一些其他對象讀取的數(shù)據(jù)?如果是,這就是依賴。但如果它們完全在做不相干的事,它們就沒有任何共享狀態(tài),這樣你就應該并發(fā)地獲取并處理它們,因為它們之間并不依賴。”
那么為什么其他人沒有想到過更精確地測繪網(wǎng)頁對象依賴,從而提高瀏覽器的效率和頁面加載速度呢?拉維·內(nèi)卓瓦利認為,向移動計算的轉(zhuǎn)變讓人們更加關注頁面加載邏輯,人們在之前主要關注其他地方來進行優(yōu)化。
拉維·內(nèi)卓瓦利說道:“直到幾年前,許多人專注于改進瀏覽器、讓 Javascript 引擎變得更快,讓 HTML 處理器運行得更快。因此,像 Chrome 和火狐這樣的現(xiàn)代瀏覽器都經(jīng)過了大量優(yōu)化。但我想,考慮到移動計算的崛起,現(xiàn)在的關注重點正轉(zhuǎn)向這些延遲。這些移動網(wǎng)絡中的往返時間讓頁面加載速度慢了非常多。”
“當人們主要通過桌面電腦瀏覽網(wǎng)頁時,訪問服務器的成本就低很多。而在移動網(wǎng)絡中,這類時間就高了幾個數(shù)量級,而我們的方法能節(jié)省一秒多。近年來有很多研究表明,從內(nèi)容提供者的角度來說,頁面加載時間每增加幾十毫秒,都會流失大量收入和用戶。”
Polaris 需要安裝到服務器上,它還包括一個名為 Scout 的工具,以便在服務器本地加載頁面,提取頁面中的依賴來創(chuàng)造可供 Polaris 使用的依賴圖,進而優(yōu)化頁面加載方式。
“當客戶端請求到達服務器時,依賴圖已經(jīng)生成。生成依賴圖不是由用戶觸發(fā)的”,拉維·內(nèi)卓瓦利說道。不過,他也證實,如果網(wǎng)站發(fā)生重大改變,就需要重新進行依賴分析,以便繼續(xù)加速網(wǎng)頁。
“現(xiàn)在當網(wǎng)頁更新時,無數(shù)索引會在服務器上更新,以確保這些索引有內(nèi)容,它們還會索引之前的內(nèi)容,以便總是能夠恢復,因此我覺得這種依賴追蹤也可以加入到這個工作流中。”
這些研究人員在眾多網(wǎng)絡環(huán)境中下測試了 Alexa 排名前 200 的網(wǎng)站。這些測試的中位數(shù)據(jù)是節(jié)省了 34% 的加載時間。拉維·內(nèi)卓瓦利表示,加速取決于網(wǎng)頁的復雜度。非常簡單的頁面不會從這一技術中得到多少好處,越復雜的頁面能節(jié)省越多的加載時間。
麻省理工學院目前對 Polaris 的計劃是“最終”開源,但其最近的希望是能鼓勵瀏覽器開發(fā)商嵌入這一技術。
拉維·內(nèi)卓瓦利表示:“我們做的一大決策是用 Javascript 來開發(fā) Polaris。這是個研究項目,但我們希望它能被一些主流商業(yè)瀏覽器所采用。把 Polaris 嵌入到這些瀏覽器中會很有用。因為瀏覽器的原生源代碼天然運行得比 Javascript 快。”
“在瀏覽器中處理 Javascript 有優(yōu)點也有缺點。到目前為止,我們的想法是開源它,但我們的最終目標是讓一些主流瀏覽器采用它。當然,網(wǎng)絡服務器也可以采用它。”
作者:朋友圈科技
相關內(nèi)容 Related
- 為什么響應式設計需要媒體查詢2016/8/5
- 虛擬主機被搜索引擎爬蟲訪問耗費大量流量解決方法2016/8/3
- 網(wǎng)站建設中如何創(chuàng)建完美的顏色組合2016/8/1
- 什么是長尾關鍵詞?2016/8/1
- 建設企業(yè)或個人網(wǎng)站的好處2016/7/8
- 前端開發(fā)者需要知道的常識2016/7/6
- 12種方法為您拓展業(yè)務通道2016/7/27
- SEO優(yōu)化的三大技巧2016/7/24
- 10的方法來提高你的網(wǎng)站設計2016/7/24
- 網(wǎng)站統(tǒng)計用哪個比較好,百度?cnzz?2016/7/21