近幾年來(lái),Web應(yīng)用程序的性能變得越來(lái)越重要,甚至比業(yè)務(wù)還重要,因?yàn)樗阉饕妫ㄈ鏕oogle)在排名時(shí),會(huì)將網(wǎng)站的性能因素納入考慮,最終形成了“性能=更好的可見(jiàn)性=更多的用戶=更多的收入”這樣的連環(huán)效應(yīng)。
網(wǎng)站性能測(cè)試的最佳辦法是看幾個(gè)能告訴你網(wǎng)站快慢的KPI(Key Performance Indicators,關(guān)鍵性能指標(biāo)),這些指標(biāo)由Web性能專家(如Steve Souders)和公司(如Google,Yahoo)推動(dòng)的,其中頁(yè)面載入時(shí)間,網(wǎng)絡(luò)往返次數(shù),傳輸內(nèi)容的大小是衡量一個(gè)Web頁(yè)面性能的重要指標(biāo)。dynaTrace AJAX版本擴(kuò)展了現(xiàn)有KPI列表,包括可測(cè)量首次顯示時(shí)間,完全載入時(shí)間,JavaScript執(zhí)行時(shí)間等。
載入時(shí)間方面的KPI
從最終用戶性能的角度來(lái)看,訪問(wèn)一個(gè)網(wǎng)站會(huì)經(jīng)歷3個(gè)有趣的階段,dynaTrace AJAX版本在TimeLine視圖中可視化展示了頁(yè)面載入的不同階段,這里我突出顯示了首次顯示時(shí)間,onLoad時(shí)間和完全載入時(shí)間,如下圖所示。
圖1 訪問(wèn)一個(gè)網(wǎng)頁(yè)的整個(gè)過(guò)程
1、首次顯示時(shí)間
這個(gè)時(shí)間等于在瀏覽器地址欄輸入U(xiǎn)RL按回車到用戶看到網(wǎng)頁(yè)的第一個(gè)視覺(jué)標(biāo)志為止,第一個(gè)視覺(jué)標(biāo)志是瀏覽器的第一個(gè)繪制活動(dòng),瀏覽器繪制內(nèi)容的起始時(shí)間取決于原始的HTML文檔,不同的策略有不同的最佳實(shí)踐,例如Google會(huì)先下載一個(gè)極簡(jiǎn)的頁(yè)面提供快速的第一視覺(jué)呈現(xiàn),在onLoad后再延遲加載更多的內(nèi)容,有時(shí)甚至是用戶已經(jīng)開始與網(wǎng)頁(yè)交互了才加載剩下的內(nèi)容。
2、onLoad事件時(shí)間
這個(gè)時(shí)間是直到瀏覽器觸發(fā)onLoad事件的時(shí)間,當(dāng)原始文檔和所有引用的內(nèi)容完全下載后才會(huì)觸發(fā)這個(gè)事件,JavaScript onLoad處理程序使用這個(gè)事件操作頁(yè)面的當(dāng)前初始狀態(tài)。
3、完全載入的時(shí)間
這個(gè)時(shí)間等于直到所有onLoad JavaScript處理程序執(zhí)行完畢,所有動(dòng)態(tài)的或延遲加載的內(nèi)容都通過(guò)這些處理程序觸發(fā)的時(shí)間,有時(shí)要精確確定一個(gè)頁(yè)面的完全載入時(shí)間是很困難的,特別是當(dāng)JavaScript處理程序使用了不斷修改頁(yè)面的操作時(shí),如實(shí)時(shí)股票顯示。