前端監控的具體實現細節

在這里插入圖片描述

🤍 前端開發工程師、技術日更博主、已過CET6
🍨 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1
🕠 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》
🍚 藍橋云課簽約作者、上架課程《Vue.js 和 Egg.js 開發企業級健康管理項目》、《帶你從入門到實戰全面掌握 uni-app》

前端監控是指對前端應用進行實時監控,以收集和記錄應用在運行過程中的各種數據,如性能數據、錯誤日志、用戶行為等。前端監控可以幫助開發者發現和解決應用中的問題,提高用戶體驗和應用質量。本文將詳細介紹前端監控的具體實現細節。

1. 性能監控

性能監控是指對前端應用的性能進行監控,以收集和記錄應用的性能數據,如頁面加載時間、資源加載時間、JavaScript 執行時間等。以下是一些常見的性能監控方法:

1.1 Navigation Timing API

Navigation Timing API 是一個瀏覽器提供的 API,用于收集和記錄頁面加載的性能數據。以下是一個使用 Navigation Timing API 的示例:

window.addEventListener('load', () => {const timing = window.performance.timing;const loadTime = timing.loadEventEnd - timing.navigationStart;console.log(`Page load time: ${loadTime} ms`);
});

1.2 Resource Timing API

Resource Timing API 是一個瀏覽器提供的 API,用于收集和記錄資源加載的性能數據。以下是一個使用 Resource Timing API 的示例:

window.addEventListener('load', () => {const resources = window.performance.getEntriesByType('resource');resources.forEach((resource) => {console.log(`Resource: ${resource.name}, Load time: ${resource.duration} ms`);});
});

2. 錯誤監控

錯誤監控是指對前端應用中的錯誤進行監控,以收集和記錄錯誤日志。以下是一些常見的錯誤監控方法:

2.1 window.onerror

window.onerror 是一個全局事件處理器,用于捕獲未處理的 JavaScript 錯誤。以下是一個使用 window.onerror 的示例:

window.onerror = (message, source, lineno, colno, error) => {console.log(`Error: ${message}, Line: ${lineno}, Column: ${colno}, Stack: ${error.stack}`);
};

2.2 window.addEventListener(‘error’)

window.addEventListener('error') 是一個全局事件處理器,用于捕獲未處理的 JavaScript 錯誤。以下是一個使用 window.addEventListener('error') 的示例:

window.addEventListener('error', (event) => {console.log(`Error: ${event.message}, Line: ${event.lineno}, Column: ${event.colno}, Stack: ${event.error.stack}`);
});

3. 用戶行為監控

用戶行為監控是指對用戶在應用中的行為進行監控,以收集和記錄用戶的行為數據,如點擊事件、滾動事件、表單提交等。以下是一些常見的用戶行為監控方法:

3.1 點擊事件

我們可以使用 addEventListener 方法來監聽用戶的點擊事件,并記錄點擊的位置、目標等數據。以下是一個示例:

document.addEventListener('click', (event) => {console.log(`Click: ${event.target}, X: ${event.clientX}, Y: ${event.clientY}`);
});

3.2 滾動事件

我們可以使用 addEventListener 方法來監聽用戶的滾動事件,并記錄滾動的位置、距離等數據。以下是一個示例:

window.addEventListener('scroll', () => {console.log(`Scroll: X: ${window.scrollX}, Y: ${window.scrollY}`);
});

4. 數據上報

數據上報是指將收集到的監控數據發送到服務器,以便進行進一步的分析和處理。以下是一些常見的數據上報方法:

4.1 XMLHttpRequest

我們可以使用 XMLHttpRequest 對象來發送監控數據。以下是一個示例:

const xhr = new XMLHttpRequest();
xhr.open('POST', '/monitor', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({ type: 'performance', data: performanceData }));

4.2 fetch

我們可以使用 fetch 函數來發送監控數據。以下是一個示例:

fetch('/monitor', {method: 'POST',headers: {'Content-Type': 'application/json'},body: JSON.stringify({ type: 'performance', data: performanceData })
});

5. 總結

前端監控是前端開發的重要組成部分,它可以幫助開發者發現和解決應用中的問題,提高用戶體驗和應用質量。通過實施性能監控、錯誤監控、用戶行為監控和數據上報,開發者可以更高效地監控和管理前端應用。希望本文對你有所幫助,如果你有任何問題或建議,歡迎在評論區留言討論。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70305.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【網絡安全 | 漏洞挖掘】我如何通過Cookie Manipulation發現主域上的關鍵PII?

未經許可,不得轉載。 文章目錄 正文正文 在分析 Example.com 的認證機制時,我注意到一個特定的 cookie,USER_ID,包含了一個具有預測性的會話標識符,其格式為: USER_ID="VYCVCDs-TZBI:XXXX-random-data"其中,XXXX 是由四個大寫字母組成的部分,我使用 Burp S…

PostgreSQL 的崛起與無服務器數據庫的新時代

根據 2023 年 Stack Overflow 開發人員調查 ,PostgreSQL 超越 MySQL 成為最受開發人員推崇和期望的數據庫系統,這是一個重要的里程碑。這一轉變反映了開發人員社區對 PostgreSQL 強大的功能集、可靠性和可擴展性的日益認同。 這種不斷變化的格局激發了數…

計算機視覺+Numpy和OpenCV入門

Day 1:Python基礎Numpy和OpenCV入門 Python基礎 變量與數據類型、函數與類的定義、列表與字典操作文件讀寫操作(讀寫圖像和數據文件) 練習任務:寫一個Python腳本,讀取一個圖像并保存灰度圖像。 import cv2 img cv2.im…

cesium基礎設置

cesium官網下載&#xff1a;https://cesium.com/downloads/ 1.安裝cesium 選擇下載到本地使用&#xff0c;或者通過npm下載到項目中 2.代碼書寫 &#xff08;1&#xff09;創建容器 <div id"cesiumContainer" style"width: 100%; height: 100%"><…

C++ 實踐擴展(Qt Creator 聯動 Visual Studio 2022)

? 這里我們將在 VS 上實現 QT 編程&#xff0c;實現如下&#xff1a; 一、Vs 2022 配置&#xff08;若已安裝&#xff0c;可直接跳過&#xff09; 點擊鏈接&#xff1a;?????Visual Studio 2022 我們先去 Vs 官網下載&#xff0c;如下&#xff1a; 等待程序安裝完成之…

《解鎖自然語言處理:讓公眾正確擁抱AI語言魔法》

在當今數字化浪潮中&#xff0c;自然語言處理&#xff08;NLP&#xff09;技術作為人工智能領域的璀璨明珠&#xff0c;正以驚人的速度融入我們的生活。從智能語音助手到智能客服&#xff0c;從機器翻譯到內容創作輔助&#xff0c;NLP技術無處不在。然而&#xff0c;如同任何強…

uniapp webview嵌入外部h5網頁后的消息通知

最近開發了個oa系統&#xff0c;pc端的表單使用form-create開發&#xff0c;form-create 是一個可以通過 JSON 生成具有動態渲染、數據收集、驗證和提交功能的表單生成組件。移動端使用uniapp開發&#xff0c;但是因為form-create移動端只支持vant&#xff0c;不支持uniapp。官…

Python在網絡安全中的應用 python與網絡安全

前言 網絡安全是保護網絡、系統和程序免受數字攻擊的做法。據估計&#xff0c; 2019 年該行業價值 1120 億美元&#xff0c;到2021 年估計有 350 萬個職位空缺。 許多編程語言用于執行與網絡安全相關的日常任務&#xff0c;但其中一種已成為行業標準&#xff1a;Python&#…

設計模式15:中介者模式

系列總鏈接&#xff1a;《大話設計模式》學習記錄_net 大話設計-CSDN博客 1.概述 中介者模式&#xff08;Mediator Pattern&#xff09;是一種行為設計模式&#xff0c;旨在通過一個中介對象來封裝一系列對象之間的交互方式&#xff0c;從而減少這些對象間的直接依賴。在該模式…

golang常用庫之-swaggo/swag根據注釋生成接口文檔

golang常用庫之-swaggo/swag庫根據注釋生成接口文檔 什么是swaggo/swag github&#xff1a;https://github.com/swaggo/swag 參考文檔&#xff1a;https://golang.halfiisland.com/community/pkgs/web/swag.html#%E4%BD%BF%E7%94%A8 swaggo/swag 是 Swagger API 2.0 在 go 語…

爬取網站內容轉為markdown 和 html(通常模式)

我們遇到一些自己喜歡內容&#xff0c;想保存下來&#xff0c;手動復制粘貼很麻煩&#xff0c;我們使用 python 來爬取這些內容。 一、代碼 downlod.py import os import requests from bs4 import BeautifulSoup from urllib.parse import urljoin# 目標網頁&#xff08;可…

. Spring MVC

&#xff08;1&#xff09;MVC 設計模式 Model&#xff08;模型&#xff09;&#xff1a;負責存儲數據和業務邏輯。在 Spring MVC 中&#xff0c;模型通常是 JavaBean&#xff0c;用于封裝數據。 View&#xff08;視圖&#xff09;&#xff1a;負責展示數據給用戶。可以是 JSP…

高效執行自動化用例:分布式執行工具pytest-xdist實戰!

01、聲明 在介紹pytest-xdist時&#xff0c;不講任何原理&#xff0c;需要看原理的請移至官方&#xff1a;https://pypi.org/project/pytest-xdist/ 當我們自動化測試用例非常多的時候&#xff0c; 一條條按順序執行會非常慢&#xff0c;pytest-xdist的出現就是為了讓自動化測…

【ISO 14229-1:2023 UDS診斷全量測試用例清單系列:第十八節】

ISO 14229-1:2023 UDS診斷服務測試用例全解析&#xff08;ResponseOnEvent_0x86服務&#xff09; 作者&#xff1a;車端域控測試工程師 更新日期&#xff1a;2025年02月14日 關鍵詞&#xff1a;UDS協議、0x86服務、事件響應、ISO 14229-1:2023、ECU測試 一、服務功能概述 0x86…

deepseek多列數據對比,聯想到excel的高級篩選功能

目錄 1 業務背景 ?2 deepseek提示詞輸入 ?3 聯想分析 4 EXCEL高級搜索 1 業務背景 系統上線的時候經常會遇到一個問題&#xff0c;系統導入的數據和線下的EXCEL數據是否一致&#xff0c;如果不一致&#xff0c;如何快速找到差異值&#xff0c;原來腦海第一反應就是使用公…

TailwindCss的vue3安裝使用

按照官網的安裝教程&#xff0c;屬性最后無法生效&#xff0c;這是自我改良版&#xff0c;添加了額外步驟&#xff0c;但是每次引入新的tailwindcss屬性 需要重新跑一次項目 npm下載tailwindcss npm install -D tailwindcss npx初始化tailwind配置 npx tailwindcss init 此時根…

個人博客測試報告

一、項目背景 個人博客系統采用前后端分離的方法來實現&#xff0c;同時使用了數據庫來存儲相關的數據&#xff0c;同時將其部署到云服務器上。前端主要有四個頁面構成&#xff1a;登錄頁、列表頁、詳情頁以及編輯頁&#xff0c;以上模擬實現了最簡單的個人博客系統。其結合后…

Python----數據結構(單鏈表:節點,是否為空,長度,遍歷,添加,刪除,查找)

一、鏈表 鏈表是一種線性數據結構&#xff0c;由一系列按特定順序排列的節點組成&#xff0c;這些節點通過指針相互連接。每個節點包含兩部分&#xff1a;元素和指向下一個節點的指針。其中&#xff0c;最簡單的形式是單向鏈表&#xff0c;每個節點含有一個信息域和一個指針域&…

夜鶯監控發布 v8.beta5 版本,優化 UI,新增接口認證方式便于鑒權

以防讀者不了解夜鶯&#xff0c;開頭先做個介紹&#xff1a; 夜鶯監控&#xff0c;英文名字 Nightingale&#xff0c;是一款側重告警的監控類開源項目。類似 Grafana 的數據源集成方式&#xff0c;夜鶯也是對接多種既有的數據源&#xff0c;不過 Grafana 側重在可視化&#xff…

什么是Embedding、RAG、Function calling、Prompt engineering、Langchain、向量數據庫? 怎么使用

什么是Embedding、RAG、Function calling、Prompt engineering、Langchain、向量數據庫? 怎么使用 目錄 什么是Embedding、RAG、Function calling、Prompt engineering、Langchain、向量數據庫? 怎么使用Embedding(嵌入)RAG(檢索增強生成)Function calling(函數調用)Pr…