Google專家:JavaScript是網站性能的致命克星
原創【51CTO快譯】如今,即使是一般網民也清楚設計網站時要使其運行速度較快該怎么做:減少發送給服務器的請求數量,縮小JPEG尺寸,及獲得像Akamai Technologies或Limelight Networks之類內容分發網絡供應商的服務。
問題是,據一位資深性能優化工程師所稱,這些旨在***化Web服務器的方法都成效甚微。這位工程師叫做Steve Souders,現在Google任性能優化總工程師,之前則在Yahoo任同樣一職。
“我們曾把Apache代碼拆散打亂來看Yahoo到底是怎么運行的,” Souders說道。做過詳細分析之后,Souders 吃驚地發現:加載網頁時,只有10%到20%的時間是服務器所用的。
在周二舉辦于洛杉磯的微軟技術大會上,Souders發言說延遲大多是網頁瀏覽器里執行代碼的結果。Souders說,在今天的多AJAX網頁上,問題代碼常常是JavaScript。他說,這不是因為Web網頁上JavaScript文件太大,而是由于Web瀏覽器對JavaScript的處理方式。
“因為要依次執行所有JavaScript文件,***代Web瀏覽器就決定它們還是執行一個的時候中止其它下載比較好。”于是就使其它代碼不能被執行或處理。
這種做法在十年前可能合理,但今天電腦由雙核和四核CPU驅動的時代,情況就不同了。而且,延緩所造成的代價會很高。
Souders說,Google發現延時500毫秒網路流量就會減少20%,而Amazon也看到100毫秒的延緩就縮減了1%的銷售額。
更好的瀏覽器,有更好的性能
新版的和即將推出的Web 瀏覽器可以在執行JavaScript 文件的同時下載這些文件。Souders說,上月發行的Internet Explorer 8有這種性能,將推出的Mozilla公司的Firefox 3.5和Google的Chrome 2.0也可以。51CTO編者注:這四大瀏覽器在上兩個月間都先后發布了重要更新,有關它們的性能已經有相關人士做出了比對;而據國際報道,JavaScript成瀏覽器戰爭主戰場。
Souders說,不對JavaScript做詳細檢修,改善就不會很大。
為解決這個問題,Souders ***推薦了他制做的一種叫做Yslow的免費工具,Yslow分析并對Web網頁在***速度方面的設計情況劃出級別。起初為IE打造的Yslow 2.0是一個與Firebug網頁開發工具相結合的Firefox附加組件。它可以在Yahoo開發者網絡上下載到。
用戶可以用Yslow看到JavaScript開始被加載的狀況,并確定是否產生了瓶頸。然后用戶就可以分解開JavaScript文件,只在開始加載所需的JavaScript,將剩下的留到***,即文字和圖片出現之后。
這種方法幫助了一個Souders不愿透露名稱的Google網站首頁呈現速度提高了60%。
CSS也會影響網站性能。描述Web頁面外觀的CSS文件近年變得越來越繁復。
CSS文件成為問題,部分原因在于用戶往往會整天停留在某些如Web郵件門戶這樣的多CSS頁面上。Souders說,這些網站會整天不斷重新呈現,產生由于每次對CSS文件表述過于詳細造成的延遲。
除JavaScript和CSS外,Yslow總共分析到22條準則規范。在級別劃分方面Yslow不偏不倚。著名的網站如Apple.com, ESPN.com和Wikipedia被劃為C等,NYTimes.com, NBA.com和Computerworld.com都被歸為更糟糕的E等。
“看著這個,我覺得它就像是很嚴格地打成績的老師。” Souders說。
像Google.com和微軟的Live.com這種頁面上內容很少的搜索引擎在Yslow上屬于寥寥可數的A類。
除Yslow外,還有其它一些工具可用來檢測性能瓶頸問題。微軟提供有Visual Roundtrip Organizer,而AOL開發了一種叫做PageTest的立即開放源代碼工具。所有這些工具都通過一組準則來評判Web網站性能,不過這些準則都無法與Yslow的22條準則規范相比。
原文:JavaScript - the Web site performance killer, Google guru says by Eric Lai
【編輯推薦】