摘要:基于此我們可以通過(guò)獲取頭部資源加載完的時(shí)刻來(lái)近似統(tǒng)計(jì)白屏?xí)r間代碼理解測(cè)試時(shí)間起點(diǎn),實(shí)際統(tǒng)計(jì)起點(diǎn)為時(shí)間終點(diǎn)頭部資源加載時(shí)間首屏?xí)r間首屏?xí)r間的統(tǒng)計(jì)比較復(fù)雜,因?yàn)樯婕皥D片等多種元素及異步渲染等方式。
20190318期
前端性能監(jiān)控你會(huì)監(jiān)控哪些數(shù)據(jù)? 如何做?
開(kāi)始之前給大家推薦兩個(gè)檢查網(wǎng)頁(yè)性能的地址
https://developers.google.com...
https://www.webpagetest.org/
為什么要做性能監(jiān)控對(duì)于公司來(lái)說(shuō),性能在一定程度上與利益直接相關(guān)
為什么性能會(huì)影響公司的收益呢?根本原因還是在于性能影響了用戶體驗(yàn)。加載的延遲、操作的卡頓等都會(huì)影響用戶的使用體驗(yàn)。尤其是移動(dòng)端,用戶對(duì)頁(yè)面響應(yīng)延遲和連接中斷的容忍度很低。想象一下你拿著手機(jī)打開(kāi)一個(gè)網(wǎng)頁(yè)想看到某個(gè)信息卻加載半天的心情,你很可能選擇直接離開(kāi)換一個(gè)網(wǎng)頁(yè)。谷歌也將頁(yè)面加載速度作為 SEO 的一個(gè)權(quán)重
哪些點(diǎn)需要監(jiān)控我們可以分為以下幾個(gè)點(diǎn)來(lái)進(jìn)行監(jiān)控
白屏?xí)r間
首屏?xí)r間
用戶可操作時(shí)間
總下載時(shí)間
白屏?xí)r間是用戶首次看到內(nèi)容的時(shí)間,也叫做首次渲染時(shí)間,chrome 高版本有 firstPaintTime 接口來(lái)獲取這個(gè)耗時(shí),但大部分瀏覽器并不支持,必須想其他辦法來(lái)監(jiān)測(cè)。仔細(xì)觀察 WebPagetest 視圖分析發(fā)現(xiàn),白屏?xí)r間出現(xiàn)在頭部外鏈資源加載完附近,因?yàn)闉g覽器只有加載并解析完頭部資源才會(huì)真正渲染頁(yè)面?;诖宋覀兛梢酝ㄟ^(guò)獲取頭部資源加載完的時(shí)刻來(lái)近似統(tǒng)計(jì)白屏?xí)r間
代碼理解
首屏?xí)r間的統(tǒng)計(jì)比較復(fù)雜,因?yàn)樯婕皥D片等多種元素及異步渲染等方式。觀察加載視圖可發(fā)現(xiàn),影響首屏的主要因素的圖片的加載。通過(guò)統(tǒng)計(jì)首屏內(nèi)圖片的加載時(shí)間便可以獲取首屏渲染完成的時(shí)間。統(tǒng)計(jì)流程如下
首屏位置調(diào)用 API 開(kāi)始統(tǒng)計(jì) -> 綁定首屏內(nèi)所有圖片的 load 事件 -> 頁(yè)面加載完后判斷圖片是否在首屏內(nèi),找出加載最慢的一張 -> 首屏?xí)r間
用戶可操作默認(rèn)可以統(tǒng)計(jì)domready時(shí)間,因?yàn)橥ǔ?huì)在這時(shí)候綁定事件操作。對(duì)于使用了模塊化異步加載的 JS 可以在代碼中去主動(dòng)標(biāo)記重要 JS 的加載時(shí)間,這也是產(chǎn)品指標(biāo)的統(tǒng)計(jì)方式
總下載時(shí)間默認(rèn)可以統(tǒng)計(jì)onload時(shí)間,這樣可以統(tǒng)計(jì)同步加載的資源全部加載完的耗時(shí)。如果頁(yè)面中存在很多異步渲染,可以將異步渲染全部完成的時(shí)間作為總下載時(shí)間
總結(jié)白屏?xí)r間指head內(nèi)資源加載完成
首屏?xí)r間指可視區(qū)域內(nèi)最后一張圖片加載完成的時(shí)間
可操作時(shí)間指Document.onready時(shí)間
總下載時(shí)間指Document.onload時(shí)間
關(guān)于JS每日一題JS每日一題可以看成是一個(gè)語(yǔ)音答題社區(qū)
每天利用碎片時(shí)間采用60秒內(nèi)的語(yǔ)音形式來(lái)完成當(dāng)天的考題
群主在次日0點(diǎn)推送當(dāng)天的參考答案
注 絕不僅限于完成當(dāng)天任務(wù),更多是查漏補(bǔ)缺,學(xué)習(xí)群內(nèi)其它同學(xué)優(yōu)秀的答題思路
點(diǎn)擊加入答題
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110174.html
摘要:在給一個(gè)目標(biāo)對(duì)象為構(gòu)造函數(shù)的代理對(duì)象構(gòu)造實(shí)例時(shí)觸發(fā)該操作,比如在執(zhí)行時(shí)。 1、元素上下垂直居中的方式有哪些? 元素水平垂直居中的方式有哪些? absolute加margin方案 fixed 加 margin 方案 display:table 方案 行內(nèi)元素line-height方案 flex 彈性布局方案 transform 未知元素寬高解決方案 absolute加mar...
摘要:在給一個(gè)目標(biāo)對(duì)象為構(gòu)造函數(shù)的代理對(duì)象構(gòu)造實(shí)例時(shí)觸發(fā)該操作,比如在執(zhí)行時(shí)。 1、元素上下垂直居中的方式有哪些? 元素水平垂直居中的方式有哪些? absolute加margin方案 fixed 加 margin 方案 display:table 方案 行內(nèi)元素line-height方案 flex 彈性布局方案 transform 未知元素寬高解決方案 absolute加mar...
摘要:在給一個(gè)目標(biāo)對(duì)象為構(gòu)造函數(shù)的代理對(duì)象構(gòu)造實(shí)例時(shí)觸發(fā)該操作,比如在執(zhí)行時(shí)。 1、元素上下垂直居中的方式有哪些? 元素水平垂直居中的方式有哪些? absolute加margin方案 fixed 加 margin 方案 display:table 方案 行內(nèi)元素line-height方案 flex 彈性布局方案 transform 未知元素寬高解決方案 absolute加mar...
摘要:?jiǎn)柷岸说木彺嬗心男┒歼m用什么場(chǎng)景區(qū)別是什么參考回答前端緩存分為兩部分緩存瀏覽器緩存緩存強(qiáng)緩存強(qiáng)緩存主要是采用響應(yīng)頭中的和兩個(gè)字段進(jìn)行控制的值理解指定設(shè)置緩存最大的有效時(shí)間單位為指定響應(yīng)會(huì)被緩存,并且在多用戶間共享響應(yīng)只作為私有的緩存, 20190116問(wèn): 前端的緩存有哪些?都適用什么場(chǎng)景?區(qū)別是什么? 參考回答 前端緩存分為兩部分: http 緩存 瀏覽器緩存 http 緩存 強(qiáng)...
摘要:?jiǎn)柷岸说木彺嬗心男┒歼m用什么場(chǎng)景區(qū)別是什么參考回答前端緩存分為兩部分緩存瀏覽器緩存緩存強(qiáng)緩存強(qiáng)緩存主要是采用響應(yīng)頭中的和兩個(gè)字段進(jìn)行控制的值理解指定設(shè)置緩存最大的有效時(shí)間單位為指定響應(yīng)會(huì)被緩存,并且在多用戶間共享響應(yīng)只作為私有的緩存, 20190116問(wèn): 前端的緩存有哪些?都適用什么場(chǎng)景?區(qū)別是什么? 參考回答 前端緩存分為兩部分: http 緩存 瀏覽器緩存 http 緩存 強(qiáng)...
閱讀 3758·2021-08-11 11:16
閱讀 1629·2019-08-30 15:44
閱讀 1998·2019-08-29 18:45
閱讀 2278·2019-08-26 18:18
閱讀 1009·2019-08-26 13:37
閱讀 1576·2019-08-26 11:43
閱讀 2124·2019-08-26 11:34
閱讀 380·2019-08-26 10:59