Polaris是一款新穎的JavaScript框架,可以幫助網頁加載時間平均減少34%。這款框架是由麻省理工學院(MIT)計算機科學與人工智能實驗室(CSAIL)與哈佛大學的研究人員共同開發, Polaris可幫助減少網絡往返中產生的延時。
根據會在下一期USENIX組織的NSDI研討會上發表的論文,MIT的博士生Ravi Netravali以及其他人基于兩個工具解釋了這個新方法:
Scout可以追蹤在頁面加載過程中出現的JavaScript堆和DOM內的細粒度數據流。 Polaris是JavaScript客戶端調度器,可載入Scout圖像來合成一個網頁。相依性分析是被普遍使用在瀏覽器加載資源方法優化的技術。根據Netravali所說,在Scout之前,這種分析是基于HTML標簽之間的語意關系完成的,但是它缺失了許多細粒度相依性,我們在下圖中可以看到一個實例。
從另一方面來說,Scout正在努力發掘HTML層面的相依性,JavaScript文件之間的相依性以及JavaScript和DOM元素間的相依性。
Scout通過提供細粒度相依圖,使瀏覽器能更好地安排資源加載,Polaris JavaScript調度器的作用就顯現了出來。Polaris可以在普通的瀏覽器上正常運行,也可以根據頁面的Scout圖計算動態的臨界荷載路徑,其服務器能夠與它所提供服務的HTML頁面和Polaris自身相關聯。從定義上來說,動態的臨界荷載路徑是當前擁有最多未解決對象的路徑,與靜態加載路徑不同,它由Scout提供并受到順序和以及網絡讀取完畢延遲的影響。
Polaris根據動態的臨界荷載路徑劃分了讀取和評估對象的先后順序,它致力于平行利用客戶端CPU及網絡,并保持客戶端網絡通道都在使用,給瀏覽器限制最大網絡同時請求數目。
Polaris項目的研究人員在不同的網絡環境下測試了他們的系統,“從25ms到500ms的延遲,從1Mbps到25Mbps的帶寬”,以及在200個大眾網站上進行了測試。他們認為,這表明了在平均情況下,減少的時間多達34%,而在95%的情況下,時間的減少可以達到50%。性能隨著網站的改變而改變,復雜的頁面會較高,而大量運用緩存的頁面則會較低。