摘要:只做頁面性能數(shù)據(jù)的采集和上報(bào),是比較完整和健全的數(shù)據(jù)上報(bào)插件,它可以幫你完成以下功能是比較完整和健全的數(shù)據(jù)上報(bào)插件,它可以幫你完成以下功能當(dāng)前頁面上一頁面當(dāng)前瀏覽器版本信息頁面性能數(shù)據(jù)信息,例如頁面加載時(shí)間,白屏?xí)r間,解析時(shí)間等當(dāng)前頁面
performance-report只做頁面性能數(shù)據(jù)的采集和上報(bào),是比較完整和健全的數(shù)據(jù)上報(bào)插件,它可以幫你完成以下功能: performance-report 是比較完整和健全的數(shù)據(jù)上報(bào)插件,它可以幫你完成以下功能:
github地址,如果你覺得對你有用的話歡迎給個(gè)star當(dāng)前頁面URL (data.page)
上一頁面URL (data.preUrl)
當(dāng)前瀏覽器版本信息 (data.appVersion)
頁面性能數(shù)據(jù)信息 (data.performance),例如:頁面加載時(shí)間,白屏?xí)r間,dns解析時(shí)間等
當(dāng)前頁面錯(cuò)誤信息 (data.errorList) 包含(js,css,img,ajax,fetch 等錯(cuò)誤信息)
當(dāng)前頁面所有資源性能數(shù)據(jù) (data.resoruceList),例如ajax,css,img等資源加載性能數(shù)據(jù)
不用擔(dān)心阻塞頁面,壓縮資源大小6kb,上報(bào)方式為異步上報(bào)
https://github.com/wangweiang...
完整前端性能監(jiān)控系統(tǒng):https://github.com/wangweiang... 使用方式1、下載 dist/performance-report.min.js 到本地
2、使用script標(biāo)簽引入到html的頭部(備注:放到所有js資源之前)
3、使用performance函數(shù)進(jìn)行數(shù)據(jù)的監(jiān)聽上報(bào)
參數(shù)說明performance test
Performance({ domain:"http://some.com/api", outtime:500, isPage:true, isResource:true, isError:true, filterUrl:["http://localhost:35729/livereload.js?snipver=1"] },(data)=>{ fetch("http://some.com/api",{type:"POST",body:JSON.stringify(result)}).then((data)=>{}) })
同時(shí)傳入 domain和傳入的function ,function優(yōu)先級更高;
domain :上報(bào)api接口
outtime :上報(bào)延遲時(shí)間,保證異步數(shù)據(jù)的加載 (默認(rèn):1000ms)
isPage :是否上報(bào)頁面性能數(shù)據(jù) (默認(rèn):true)
isResource :是否上報(bào)頁面資源性能數(shù)據(jù) (默認(rèn):true)
isError :是否上報(bào)頁面錯(cuò)誤信息數(shù)據(jù) (默認(rèn):true)
filterUrl :不需要上報(bào)的ajax請求 (例如開發(fā)模式下的livereload鏈接)
fn :自定義上報(bào)函數(shù),上報(bào)方式可以用ajax可以用fetch (非必填:默認(rèn)使用fetch)
錯(cuò)誤處理:插件會(huì)處理所有的error信息并完成上報(bào)
錯(cuò)誤處理分為4種類型
1.圖片資源,js資源文本資源等資源錯(cuò)誤信息 n="resource"
2.js報(bào)錯(cuò),代碼中的js報(bào)錯(cuò) n="js"
3.ajax請求錯(cuò)誤 n="ajax"
4.fetch請求錯(cuò)誤 n="fetch"
AJAX處理:AJAX分為 XMLHttpRequest 和 Fetch的處理
AJAX兼容老板般與新版本 例如:jq的1.x版本與2.x版本以上需要做兼容處理
攔截所有fetch請求信息,遇到錯(cuò)誤時(shí)收集并上報(bào)
所有資源信息處理:上報(bào)所有資源信息 資源類型以type來區(qū)分 type類型有
script:js腳本資源
img:圖片資源
fetchrequest:fetch請求資源
xmlhttprequest:ajax請求資源
other :其他
運(yùn)行方式git clone https://github.com/wangweianger/web-performance-report.git npm install //開發(fā) npm run dev //打包 npm run build http://localhost:8080/test/ 頁面測試單頁面程序處理說明
對于單頁面應(yīng)用程序,只有第一次加載的頁面性能數(shù)據(jù)有效,之后的路由跳轉(zhuǎn)不會(huì)有頁面的性能數(shù)據(jù),因?yàn)樾枰撵o態(tài)資源已經(jīng)加載完成
如果新的路由有ajax請求或者fetch請求,會(huì)抓取所有新的請求數(shù)據(jù)并上報(bào)。
多頁面應(yīng)用程序不會(huì)受影響
返回參數(shù)說明參數(shù)名 | 描述 | 說明 |
---|---|---|
appVerfion | 當(dāng)前瀏覽器信息 | |
page | 當(dāng)前頁面 | |
preUrl | 上一頁面 | |
errorList | 錯(cuò)誤資源列表信息 | |
->t | 資源時(shí)間 | |
->n | 資源類型 | resource,js,ajax,fetch,other |
->msg | 錯(cuò)誤信息 | |
->method | 資源請求方式 | GET,POST |
->data->resourceUrl | 請求資源路徑 | |
->data->col | js錯(cuò)誤行 | |
->data->line | js錯(cuò)誤列 | |
->data->status | ajax錯(cuò)誤狀態(tài) | |
->data->text | ajax錯(cuò)誤信息 | |
performance | 頁面資源性能數(shù)據(jù)(單位均為毫秒) | |
->dnst | DNS解析時(shí)間 | |
->tcpt | TCP建立時(shí)間 | |
->wit | 白屏?xí)r間 | |
->domt | dom渲染完成時(shí)間 | |
->lodt | 頁面onload時(shí)間 | |
->radt | 頁面準(zhǔn)備時(shí)間 | |
->rdit | 頁面重定向時(shí)間 | |
->uodt | unload時(shí)間 | |
->reqt | request請求耗時(shí) | |
->andt | 頁面解析dom耗時(shí) | |
resoruceList | 頁面資源性能數(shù)據(jù) | |
->decodedBodySize | 資源返回?cái)?shù)據(jù)大小 | |
->duration | 資源耗時(shí) | |
->method | 請求方式 | GET,POST |
->name | 請求資源路徑 | |
->nextHopProtocol | http協(xié)議版本 | |
->type | 請求資源類型 | script,img,fetchrequest,xmlhttprequest,other |
{ "page": "http://localhost:8080/test/", "preUrl": "", "appVersion": "5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", "errorList": [ { "t": 1523948635259, "n": "js", "msg": "ReferenceError: wangwei is not defined at http://localhost:8080/test/:64:15", "data": { "resourceUrl": "http://localhost:8080/test/", "line": 64, "col": 15 }, "method": "GET" }, { "t": 1523948635330, "n": "resource", "msg": "img is load error", "data": { "target": "img", "type": "error", "resourceUrl": "http://img1.imgtn.bd95510/" }, "method": "GET" }, { "t": 1523948635405, "n": "ajax", "msg": "ajax請求錯(cuò)誤", "data": { "resourceUrl": "", "text": "", "status": 0 } }, { "t": 1523948635425, "n": "fetch", "msg": "fetch請求錯(cuò)誤", "data": { "resourceUrl": "http://mock-api.seosiwei.com/guest/order/api/order/getOrde", "text": "TypeError: Failed to fetch", "status": 0 }, "method": "POST" } ], "performance": { "dnst": 0, "tcpt": 0, "wit": 17, "domt": 239, "lodt": 904, "radt": 8, "rdit": 0, "uodt": 0, "reqt": 23, "andt": 645 }, "resourceList": [ { "name": "https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js", "method": "GET", "type": "script", "duration": "0.00", "decodedBodySize": 0, "nextHopProtocol": "h2" }, { "name": "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=295864288,1887240069&fm=27&gp=0.jpg", "method": "GET", "type": "img", "duration": "0.00", "decodedBodySize": 0, "nextHopProtocol": "http/1.1" }, { "name": "http://mock-api.seosiwei.com/guest/home/api/shop/getHomeInitInfo", "method": "GET", "type": "fetchrequest", "duration": "157.10", "decodedBodySize": 0, "nextHopProtocol": "http/1.1" }, { "name": "http://mock-api.seosiwei.com/guest/order/api/order/getOrder", "method": "POST", "type": "xmlhttprequest", "duration": "148.40", "decodedBodySize": 0, "nextHopProtocol": "http/1.1" } ] }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94328.html
摘要:如何在新的技術(shù)背景下讓前端數(shù)據(jù)采集工作更加完善高效,是本文討論的重點(diǎn)。具體來說,我們對前端的數(shù)據(jù)采集具體主要分為路由切換性能資源錯(cuò)誤日志上報(bào)路由切換等前端技術(shù)的快速發(fā)展使單頁面應(yīng)用盛行。 隨著業(yè)務(wù)的快速發(fā)展,我們對生產(chǎn)環(huán)境下的問題感知能力越來越關(guān)注。作為距離用戶最近的一層,前端的表現(xiàn)是否可靠、穩(wěn)定、好用,很大程度上決定著用戶對整個(gè)產(chǎn)品的體驗(yàn)和感受。因此,對于前端的監(jiān)控不容忽視。 搭建一...
摘要:參考一步一步搭建前端監(jiān)控系統(tǒng)錯(cuò)誤監(jiān)控篇用插件記錄網(wǎng)絡(luò)請求異常關(guān)于專注于微信小程序微信小游戲支付寶小程序和線上應(yīng)用實(shí)時(shí)監(jiān)控。 摘要: 如何監(jiān)控HTTP請求錯(cuò)誤? 作者:一步一個(gè)腳印一個(gè)坑 原文:搭建前端監(jiān)控系統(tǒng)(四)接口請求異常監(jiān)控篇 Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 背景:市面上的監(jiān)控系統(tǒng)有很多,大多收費(fèi),對于小型前端項(xiàng)目來說,必然是痛點(diǎn)。另一點(diǎn)主要原因是,功能雖然...
摘要:另外這樣的異常捕獲不能捕獲的異常錯(cuò)誤信息,這點(diǎn)需要注意。最終大致的流程圖如下結(jié)語前端異常捕獲與上報(bào)是前端異常監(jiān)控的前提,了解并做好了異常數(shù)據(jù)的收集和分析才能實(shí)現(xiàn)一個(gè)完善的錯(cuò)誤響應(yīng)和處理機(jī)制,最終達(dá)成數(shù)據(jù)可視化。 關(guān)于 微信公眾號:前端呼啦圈(Love-FED) 我的博客:勞卜的博客 知乎專欄:前端呼啦圈 前言 Hello,大家好,又與大家見面了,這次給大家分享下前端異常監(jiān)控中需...
摘要:摘要通過記錄用戶行為,快速復(fù)現(xiàn)場景。這是搭建前端監(jiān)控系統(tǒng)的第二章,主要是介紹如何統(tǒng)計(jì)報(bào)錯(cuò),跟著我一步步做,你也能搭建出一個(gè)屬于自己的前端監(jiān)控系統(tǒng)。 摘要: 通過記錄用戶行為,快速復(fù)現(xiàn)BUG場景。 作者:一步一個(gè)腳印一個(gè)坑 原文:搭建前端監(jiān)控系統(tǒng)(備選)用戶行為統(tǒng)計(jì)和監(jiān)控篇(如何快速定位線上問題) Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 一步一步搭建前端監(jiān)控系統(tǒng)系列博客: ...
摘要:本文的介紹的是如何設(shè)計(jì)一個(gè)通用的可以以較小的侵入性,自動(dòng)上報(bào)前端的性能數(shù)據(jù)。具體的做法可以看我的上一篇文章在單頁應(yīng)用中,如何優(yōu)雅的監(jiān)聽的變化。三如何上報(bào)性能數(shù)據(jù)那么如何上報(bào)性能數(shù)據(jù)呢,我們第一反應(yīng)就是通過請求的形式來上報(bào)前端性能數(shù)據(jù)。 ??最近在做一個(gè)較為通用的前端性能監(jiān)控平臺,區(qū)別于前端異常監(jiān)控,前端的性能監(jiān)控主要需要上報(bào)和展示的是前端的性能數(shù)據(jù),包括首頁渲染時(shí)間、每個(gè)頁面的白屏?xí)r...
閱讀 1653·2021-09-26 09:55
閱讀 1386·2021-09-23 11:22
閱讀 2749·2021-09-06 15:02
閱讀 2658·2021-09-01 11:43
閱讀 3977·2021-08-27 13:10
閱讀 3693·2021-08-12 13:24
閱讀 2080·2019-08-30 12:56
閱讀 3009·2019-08-30 11:22