国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

前端性能指標--首屏時間統計

開發 前端
隨著公司的高速發展,業務需求越來越多,用戶和公司對于頁面的穩定性、性能也有了更高的訴求。根據Aberdeen Group的調研發現從瀏覽器輸入地址開始訪問到頁面展示的最佳時間為3秒內,每多一秒的延遲會使客戶滿意度降低16%。頁面首屏加載速度就成了重要的前端性能指標,統計首屏時間可以幫助我們更好地分析原因和優化性能,進而提升項目質量、提高用戶的使用體驗。

Part 01 白屏和首屏時間 

- 白屏:從用戶請求頁面開始到顯示第一個字符的時間。中間包括DNS查詢、建立TCP鏈接、發送首個HTTP請求、返回HTML文檔、HTML文檔head解析完畢。通常認為瀏覽器開始渲染標簽或者解析完標簽的時刻就是頁面白屏結束的時間點。

- 首屏:指用戶打開網站開始,到瀏覽器首屏內容渲染完成的時間,對于用戶體驗來說,首屏時間是用戶對一個網站的重要體驗因素。

Part 02 PerformanceTiming 

performance.timing記錄了用于分析頁面整體性能指標的關鍵時間點,包含網絡、解析等一系列的時間數據。最好在頁面完全加載完成之后再使用,因為很多值必須在頁面完全加載之后才能得到。最簡單的辦法是在window.onload(vm.$nextTick 或 react hooks useEffect)事件中讀取各種數據。

在瀏覽器控制臺,console輸入performance可以查看到performance.timing相關時間節點:

圖1 performance.timing參數介紹

通過PerformanceTiming不僅可以幫助我們省去繁瑣的手動打點操作,還可以幫助我們獲取很多其他數據,對于整個時間節點的對應關系:下圖顯示了PerformanceTiming中定義的所有時間戳屬性。

圖2 performance.timing參數說明

比較有用的頁面性能數據大概包括如下幾個:

重定向耗時:redirectEnd - redirectStart

DNS查詢耗時:domainLookupEnd - domainLookupStart

TCP鏈接耗時:connectEnd - connectStart

HTTP請求耗時:responseEnd - responseStart

解析dom樹耗時:domComplete - domInteractive

白屏時間:responseStart - navigationStart

DOM ready時間:domContentLoadedEventEnd - navigationStart

onload時間:loadEventEnd – navigationStart

Part 03 MutationObserver API 

MutationObserver API讓我們能監聽dom樹變化,在首屏的加載中,會涉及到dom的增加、修改、刪除,所以會觸發多次MutationObserver。

1)利用MutationObserver監聽document對象,每當dom變化時觸發回調函數;

2)判斷監聽的dom是否在首屏內,如果在首屏內,將該dom放到指定的數組中,記錄下當前dom變化的時間點;

3)在MutationObserver的callback函數中,通過防抖函數,監聽document.readyState狀態的變化;

4)當document.readyState === 'complete',停止定時器和 取消對document的監聽;

5)遍歷存放dom的數組,找出最后變化節點的時間,就是首屏加載完成的時間。

監聽container外層容器的變化,當觸發回調函數時,判斷對應的事件類型以及新增加的子dom是否是首屏展示的dom節點。

盡管現在的MutationObserver在移動端兼容性比較好,但為了更好的兼容,我們可以另外引入MutationEvents API。

Part 04 webview里H5頁面首屏時間

4.1 WebView初始化階段

該階段包括幾個主要步驟:

(1)開始解析Url(Url中可能包含${}需要解析的字段)

(2)完成解析Url

(3)開始校驗Url是否可以打開

(4)結束校驗Url

(5)開始加載Url到webview容器

和家親app jsbridge提供了getPerformInfo方法可以幫助我們獲取WebView性能數據:

WebViewUrlLoaded WebView加載url時間:startLoadUrl(開始加載Url到webview容器) - startProcessUrl(開始解析Url);

4.2 HTTP請求服務階段

該階段包括幾個主要步驟:

(1) DNS查詢

(2) 等待 TCP 隊列

(3) TCP鏈接

(4) 發起http請求和響應

(5) 服務器端處理HTTP請求,服務器端處理HTTP請求,瀏覽器得到html代碼

(6) 開始head解析

該階段的時間從webview容器開始加載Url開始到完成head解析,可以使用window.performance.timing.responseStart - startLoadUrl(開始加載Url到webview容器)

4.3 靜態資源下載

該階段包括幾個主要步驟:

(1) head解析并開始請求靜態資源(如js、css、圖片等)

(2) 靜態資源下載完成

(3) 開始解析靜態資源

該階段的時間從開始請求靜態資源,到開始解析靜態資源(比如JS),我們可以在js文件開始自定義JscriptLaunch字段,并賦值給window.preformance對象,(window.PerformInfo || (window.PerformInfo = {})).JscriptLaunch = new Date().getTime(); 以便于我們統計該階段的時間:window.PerformInfo.JscriptLaunch - window.performance.timing.responseStart。

4.4 API調用和首屏dom渲染

該階段包括幾個主要步驟:

(1) 開始解析靜態資源,請求API

(2) 響應數據

(3) 下載資源并渲染dom

(4) 首屏內容加載完成

利用MutationObserver監控DOM的變化,獲取首屏dom加載完成的時間,用該時間點減去window.PerformInfo.JscriptLaunch,就獲得了該階段的時間。

Part 05 數據上報

將統計到的數據以圖片打點、fetch請求或Beacon等形式進行上報,可以幫助我們后續進行分析和優化。

5.1 直接發請求上報

直接將數據通過ajax發送到后端有一個問題,就是在頁面卸載或刷新時進行上報的話,請求可能會在瀏覽器關閉或重新加載前還未發送至服務端就被瀏覽器cancel掉,導致數據上報失敗。

5.2 利用圖片上報

服務器端并不關心具體的數據上報方式,無論是請求image文件還是請求其他普通文件(JS)或者是請求接口,可以進行數據上報。

使用image有幾個優點:

圖片的src屬性并不會跨域,不會出現跨域問題;

大部分瀏覽器會延遲卸載(unload)文檔以加載圖像,可以避免第一種方法的問題;

只要在js中new出Image對象就能發起請求,不用插入dom中,可以防止阻塞頁面加載,影響用戶體驗;

相比PNG/JPG,GIF的體積最小,最適合進行上報,一般采用1*1像素的透明gif進行上報。

5.3 css定義content

通過css定義content,按鈕點擊就會上報,但是不能動態傳入一些變量。

5.4 Beacon

Beacon可將數據異步發送至服務端,且可能保障在頁面卸載實現前發送申請(解決頁面卸載會終止請求的問題)。

Part 06 總結

頁面首屏加載時間是個重要的性能指標,通過上面的方式對首屏時間進行統計分析,可以幫助我們有針對性的進行性能優化。同時頁面性能的提升,帶給用戶更好的產品體驗,這樣才會得到好的產品反饋,給企業帶來價值。

責任編輯:龐桂玉 來源: 移動Labs
相關推薦

2023-12-17 14:49:20

前端首屏時間

2021-09-08 10:42:45

前端面試性能指標

2024-06-12 00:00:05

2023-11-20 09:48:13

Linux性能指標命令

2024-09-20 08:32:21

2011-05-04 13:53:08

jQuery

2010-09-08 11:38:27

2022-05-02 08:56:04

前端性能指標

2013-06-17 10:19:30

交換機性能交換機參數交換機

2023-12-29 15:30:41

內存存儲

2011-07-28 14:58:49

HP ProLiant服務器

2011-06-07 14:16:38

雙絞線

2017-02-22 11:51:11

FortiGate企業級防火墻NGFW

2017-10-30 10:28:52

前端開發工程師性能指標

2009-12-11 15:17:35

2020-10-19 08:53:08

Redis性能指標監控

2018-01-04 09:23:21

WEB服務器性能

2024-06-28 11:54:20

2023-09-08 15:37:29

軟件開發性能

2009-11-17 10:14:27

核心路由器
點贊
收藏

51CTO技術棧公眾號

久章草在线视频| 品久久久久久久久久96高清| 不卡区在线中文字幕| 18禁免费无码无遮挡不卡网站| 五月天久久综合网| 天天干天天色天天爽| 超碰成人在线免费观看| 99精品人妻少妇一区二区| 本网站久久精品| 成人免费看片网址| 热舞福利精品大尺度视频| 日韩成人在线一区| 欧美日韩调教| 日韩精品成人一区二区在线| av中文字幕亚洲| 欧美视频中文字幕在线| 日韩一区国产二区欧美三区| 萌白酱国产一区二区| 成人免费视频网站| 日韩伦理在线电影| 亚洲资源网站| 成人一区二区三区在线观看| 午夜精品福利一区二区三区av| 欧美一区欧美二区| 成人免费看黄网站| 永久免费看av| 天堂资源在线中文| 91网站在线观看视频| 欧美精品在欧美一区二区少妇| 不卡在线视频中文字幕| 亚洲一区二区免费在线| 中文字幕第38页| 亚洲手机视频| 色悠悠久久88| 麻豆91在线| 欧美天天综合色影久久精品| a黄色片在线观看| 91在线观看一区二区| 国产在线拍揄自揄视频不卡99 | 亚洲97av| 久久综合九色欧美狠狠| yw在线观看| 日韩不卡一区| 91精品婷婷国产综合久久性色| 国产精品久久久久久av下载红粉| 美女一区二区三区视频| 日本成人福利| 成人免费视频免费观看| 亚洲一区二区三区乱码| 中文字幕一区久| www国产成人| 色综合色综合久久综合频道88| 黄色网zhan| 国产高清在线精品| 97高清免费视频| 欧美三级理伦电影| 久久精品中文| 亚洲欧美综合v| 亚洲中文字幕无码中文字| 欧美激情在线看| 成人xxxx视频| 天堂一区二区在线免费观看| 日韩欧美在线1卡| 法国空姐在线观看免费| 免费一区二区视频| 国语自产精品视频在线看| 妞干网在线视频| 欧美日韩三区| 成年人看的毛片| 911精品美国片911久久久 | 欧美一区二区视频免费观看| 台湾佬中文娱乐网欧美电影| 国产午夜精品在线观看| 黑人巨大精品欧美一区二区小视频 | 国产精品视频久久久| 久久精品a一级国产免视看成人| 欧美私人啪啪vps| 一区二区视频国产| 欧美xxav| 亚洲精品久久久久久久久久久久 | 成人盗摄视频| 亚洲偷欧美偷国内偷| 影音先锋男人在线资源| 日韩欧美中文在线| 色哟哟在线观看| 欧美无人高清视频在线观看| 性视频在线播放| 欧美日韩免费一区| av在线免费观看网址| 狠狠色综合色区| 欧美视频日韩视频在线观看| 天堂а在线中文在线无限看推荐| 亚洲人吸女人奶水| av一本在线| 亚洲欧洲一区二区三区在线观看 | 国产精品久久电影观看| 综合av第一页| 免费在线黄色影片| 一本色道久久88精品综合| va天堂va亚洲va影视| 不卡一区二区三区视频| 免费视频最近日韩| 亚洲精品第一| 另类av导航| 国产一区二区三区在线免费观看| 国产成人精品亚洲午夜麻豆| 欧美深夜福利视频| 一本到不卡精品视频在线观看| 影音先锋在线一区| 国产又大又硬又粗| 91精品国产一区| 丁香花高清在线观看完整版| 日韩精品一区二区三区四区视频 | 不卡的av影片| 日本a级片在线观看| 亚洲人成毛片在线播放| 久久色成人在线| 亚洲一级二级| 四虎影视成人精品国库在线观看| 免费看污污网站| 国产精品乱人伦| www.日日操| 亚洲视频一区二区免费在线观看| 黄色网在线免费看| 欧美裸体男粗大视频在线观看| 超碰在线免费| 日本欧美韩国国产| 国产片一区二区| 中文字幕在线播放| 国产又粗又长又爽视频| 国产精品久久久久久久久久新婚 | 精品午夜视频| 亚洲狠狠婷婷| 在线看三级网站视频| 日韩三级中文字幕| 色天使久久综合网天天| 日韩精品福利一区二区三区| 在线观看不卡av| 日韩一区二区中文字幕| 欧美精品一卡两卡| 日韩精品一区二区三区在线| 91麻豆精品国产91久久久资源速度| 亚洲一二三区不卡| 色呦呦在线视频| 色综合导航网站| 精品视频免费看| 国产精品久久久久一区二区三区共 | 久久精品99无色码中文字幕| 高清不卡av| 在线午夜视频| gogogo影视剧免费观看在线观看| 懂色一区二区三区av片| 日本道色综合久久影院| 国产精品网站在线看| 久久人人爽人人爽人人片av高请 | 欧美在线观看www| 国产丝袜一区| 欧美牲交a欧美牲交| 久久亚洲一区二区三区四区五区高| 国产福利小视频在线| 欧美性受xxx| 日韩欧美主播在线| 精品成人av一区| 国产精品综合| 欧美一区二区在线| 中文字幕免费不卡| 欧美a大片欧美片| 欧美freesex8一10精品| 欧美另类女人| 日本aⅴ亚洲精品中文乱码| 蜜桃视频在线观看www社区| 欧美性猛片xxxxx免费中国 | 户外极限露出调教在线视频| 日本一二三区在线视频| 影音先锋中文在线视频| 日p在线观看| 50度灰在线| 亚洲www色| 激情都市亚洲| 丝袜美腿一区| 欧美亚洲另类久久综合| 欧美激情二区三区| 日本精品中文字幕| 久久97超碰国产精品超碰| 日本成人免费网站| 亚州成人av在线| 欧美在线观看18| 91视频久久| 欧美人xxx| 天堂av在线中文| 久久久久久久久久久久久久久久久久av | 韩国v欧美v日本v亚洲v| 国产字幕中文| 亚洲精品久久久久中文字幕欢迎你| 国产一级成人av| 九草视频在线观看| 久久久亚洲综合网站| 一区二区三区四区不卡视频| 91精品论坛| 97视频免费|