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