摘要:只做頁面性能數據的采集和上報,是比較完整和健全的數據上報插件,它可以幫你完成以下功能是比較完整和健全的數據上報插件,它可以幫你完成以下功能當前頁面上一頁面當前瀏覽器版本信息頁面性能數據信息,例如頁面加載時間,白屏時間,解析時間等當前頁面
performance-report只做頁面性能數據的采集和上報,是比較完整和健全的數據上報插件,它可以幫你完成以下功能: performance-report 是比較完整和健全的數據上報插件,它可以幫你完成以下功能:
github地址,如果你覺得對你有用的話歡迎給個star當前頁面URL (data.page)
上一頁面URL (data.preUrl)
當前瀏覽器版本信息 (data.appVersion)
頁面性能數據信息 (data.performance),例如:頁面加載時間,白屏時間,dns解析時間等
當前頁面錯誤信息 (data.errorList) 包含(js,css,img,ajax,fetch 等錯誤信息)
當前頁面所有資源性能數據 (data.resoruceList),例如ajax,css,img等資源加載性能數據
不用擔心阻塞頁面,壓縮資源大小6kb,上報方式為異步上報
https://github.com/wangweiang...
完整前端性能監控系統:https://github.com/wangweiang... 使用方式1、下載 dist/performance-report.min.js 到本地
2、使用script標簽引入到html的頭部(備注:放到所有js資源之前)
3、使用performance函數進行數據的監聽上報
參數說明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)=>{}) })
同時傳入 domain和傳入的function ,function優先級更高;
domain :上報api接口
outtime :上報延遲時間,保證異步數據的加載 (默認:1000ms)
isPage :是否上報頁面性能數據 (默認:true)
isResource :是否上報頁面資源性能數據 (默認:true)
isError :是否上報頁面錯誤信息數據 (默認:true)
filterUrl :不需要上報的ajax請求 (例如開發模式下的livereload鏈接)
fn :自定義上報函數,上報方式可以用ajax可以用fetch (非必填:默認使用fetch)
錯誤處理:插件會處理所有的error信息并完成上報
錯誤處理分為4種類型
1.圖片資源,js資源文本資源等資源錯誤信息 n="resource"
2.js報錯,代碼中的js報錯 n="js"
3.ajax請求錯誤 n="ajax"
4.fetch請求錯誤 n="fetch"
AJAX處理:AJAX分為 XMLHttpRequest 和 Fetch的處理
AJAX兼容老板般與新版本 例如:jq的1.x版本與2.x版本以上需要做兼容處理
攔截所有fetch請求信息,遇到錯誤時收集并上報
所有資源信息處理:上報所有資源信息 資源類型以type來區分 type類型有
script:js腳本資源
img:圖片資源
fetchrequest:fetch請求資源
xmlhttprequest:ajax請求資源
other :其他
運行方式git clone https://github.com/wangweianger/web-performance-report.git npm install //開發 npm run dev //打包 npm run build http://localhost:8080/test/ 頁面測試單頁面程序處理說明
對于單頁面應用程序,只有第一次加載的頁面性能數據有效,之后的路由跳轉不會有頁面的性能數據,因為需要的靜態資源已經加載完成
如果新的路由有ajax請求或者fetch請求,會抓取所有新的請求數據并上報。
多頁面應用程序不會受影響
返回參數說明參數名 | 描述 | 說明 |
---|---|---|
appVerfion | 當前瀏覽器信息 | |
page | 當前頁面 | |
preUrl | 上一頁面 | |
errorList | 錯誤資源列表信息 | |
->t | 資源時間 | |
->n | 資源類型 | resource,js,ajax,fetch,other |
->msg | 錯誤信息 | |
->method | 資源請求方式 | GET,POST |
->data->resourceUrl | 請求資源路徑 | |
->data->col | js錯誤行 | |
->data->line | js錯誤列 | |
->data->status | ajax錯誤狀態 | |
->data->text | ajax錯誤信息 | |
performance | 頁面資源性能數據(單位均為毫秒) | |
->dnst | DNS解析時間 | |
->tcpt | TCP建立時間 | |
->wit | 白屏時間 | |
->domt | dom渲染完成時間 | |
->lodt | 頁面onload時間 | |
->radt | 頁面準備時間 | |
->rdit | 頁面重定向時間 | |
->uodt | unload時間 | |
->reqt | request請求耗時 | |
->andt | 頁面解析dom耗時 | |
resoruceList | 頁面資源性能數據 | |
->decodedBodySize | 資源返回數據大小 | |
->duration | 資源耗時 | |
->method | 請求方式 | GET,POST |
->name | 請求資源路徑 | |
->nextHopProtocol | http協議版本 | |
->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請求錯誤", "data": { "resourceUrl": "", "text": "", "status": 0 } }, { "t": 1523948635425, "n": "fetch", "msg": "fetch請求錯誤", "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" } ] }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/94328.html
摘要:如何在新的技術背景下讓前端數據采集工作更加完善高效,是本文討論的重點。具體來說,我們對前端的數據采集具體主要分為路由切換性能資源錯誤日志上報路由切換等前端技術的快速發展使單頁面應用盛行。 隨著業務的快速發展,我們對生產環境下的問題感知能力越來越關注。作為距離用戶最近的一層,前端的表現是否可靠、穩定、好用,很大程度上決定著用戶對整個產品的體驗和感受。因此,對于前端的監控不容忽視。 搭建一...
摘要:參考一步一步搭建前端監控系統錯誤監控篇用插件記錄網絡請求異常關于專注于微信小程序微信小游戲支付寶小程序和線上應用實時監控。 摘要: 如何監控HTTP請求錯誤? 作者:一步一個腳印一個坑 原文:搭建前端監控系統(四)接口請求異常監控篇 Fundebug經授權轉載,版權歸原作者所有。 背景:市面上的監控系統有很多,大多收費,對于小型前端項目來說,必然是痛點。另一點主要原因是,功能雖然...
摘要:另外這樣的異常捕獲不能捕獲的異常錯誤信息,這點需要注意。最終大致的流程圖如下結語前端異常捕獲與上報是前端異常監控的前提,了解并做好了異常數據的收集和分析才能實現一個完善的錯誤響應和處理機制,最終達成數據可視化。 關于 微信公眾號:前端呼啦圈(Love-FED) 我的博客:勞卜的博客 知乎專欄:前端呼啦圈 前言 Hello,大家好,又與大家見面了,這次給大家分享下前端異常監控中需...
摘要:摘要通過記錄用戶行為,快速復現場景。這是搭建前端監控系統的第二章,主要是介紹如何統計報錯,跟著我一步步做,你也能搭建出一個屬于自己的前端監控系統。 摘要: 通過記錄用戶行為,快速復現BUG場景。 作者:一步一個腳印一個坑 原文:搭建前端監控系統(備選)用戶行為統計和監控篇(如何快速定位線上問題) Fundebug經授權轉載,版權歸原作者所有。 一步一步搭建前端監控系統系列博客: ...
摘要:本文的介紹的是如何設計一個通用的可以以較小的侵入性,自動上報前端的性能數據。具體的做法可以看我的上一篇文章在單頁應用中,如何優雅的監聽的變化。三如何上報性能數據那么如何上報性能數據呢,我們第一反應就是通過請求的形式來上報前端性能數據。 ??最近在做一個較為通用的前端性能監控平臺,區別于前端異常監控,前端的性能監控主要需要上報和展示的是前端的性能數據,包括首頁渲染時間、每個頁面的白屏時...
閱讀 1652·2021-09-26 09:55
閱讀 1385·2021-09-23 11:22
閱讀 2747·2021-09-06 15:02
閱讀 2656·2021-09-01 11:43
閱讀 3976·2021-08-27 13:10
閱讀 3690·2021-08-12 13:24
閱讀 2080·2019-08-30 12:56
閱讀 3008·2019-08-30 11:22