博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Javascript监控前端相关数据
阅读量:7172 次
发布时间:2019-06-29

本文共 1603 字,大约阅读时间需要 5 分钟。

项目开发完成外发后,没有一个监控系统,我们很难了解到发布出去的代码在用户机器上执行是否正确,所以需要建立前端代码性能相关的监控系统。

所以我们需要做以下的一些模块:

一、收集脚本执行错误

function error(msg,url,line){   var REPORT_URL = "xxxx/cgi"; // 收集上报数据的信息   var m =[msg, url, line, navigator.userAgent, +new Date];// 收集错误信息,发生错误的脚本文件网络地址,用户代理信息,时间   var url = REPORT_URL + m.join('||');// 组装错误上报信息内容URL   var img = new Image;   img.onload = img.onerror = function(){      img = null;   };   img.src = url;// 发送数据到后台cgi}// 监听错误上报window.onerror = function(msg,url,line){   error(msg,url,line);}

通过管理后台系统,我们可以看到页面上每次错误的信息,通过这些信息我们可以很快定位并且解决问题。

 

二、收集html5 performance信息

performance 包含页面加载到执行完成的整个生命周期中不同执行步骤的执行时间。performance相关文章点击如下:

计算不同步骤时间相对于navigationStart的时间差,可以通过相应后台CGI收集。

function _performance(){   var REPORT_URL = "xxxx/cgi?perf=";   var perf = (window.webkitPerformance ? window.webkitPerformance : window.msPerformance ),      points = ['navigationStart','unloadEventStart','unloadEventEnd','redirectStart','redirectEnd','fetchStart','domainLookupStart','connectStart','requestStart','responseStart','responseEnd','domLoading','domInteractive','domContentLoadedEventEnd','domComplete','loadEventStart','loadEventEnd'];   var timing = pref.timing;   perf = perf  ? perf : window.performance;   if( perf  && timing ) {      var arr = [];      var navigationStart = timing[points[0]];      for(var i=0,l=points.length;i

通过后台接口收集和统计,我们可以对页面执行性能有很详细的了解。

三、统计每个页面的JS和CSS加载时间

在JS或者CSS加载之前打上时间戳,加载之后打上时间戳,并且将数据上报到后台。加载时间反映了页面白屏,可操作的等待时间。

var cssLoadTime = (+new Date) - cssLoadStart; var jsLoadStart = +new Date;

参考资料:

 

转载自AlloyTeam:

你可能感兴趣的文章
我们有助教啦
查看>>
一个有关原型的问题牵扯出的问题
查看>>
P53 T3
查看>>
关于 tensorflow-gpu 中 CUDA 和 CuDNN 版本适配问题
查看>>
1、JUC--volatile 关键字-内存可见性
查看>>
LeetCode: Minimum Depth of Binary Tree
查看>>
可运行的代码
查看>>
Oracle数据库添加新字段后加载页面报错 java.lang.IllegalArgumentException
查看>>
CSU 1505: 酷酷的单词【字符串】
查看>>
198. 打家劫舍
查看>>
错误之处(二)
查看>>
解决insert语句插入时,需要写列值的问题
查看>>
CSS选择器 < ~ +
查看>>
Opengl_es模型矩阵位置:glFrustumx与glTranslatef参数的相互影响--立方体旋转特效
查看>>
JS小功能系列8省市联动
查看>>
《程序是怎样跑起来的》第八章读后感
查看>>
YCD 软件更新方法
查看>>
CentOS 6.5 + Nginx 1.8.0 + PHP 5.6(with PHP-FPM) 负载均衡源码安装 之 (四)问题汇总
查看>>
mybatis中的#和$的区别
查看>>
synchronized 解决死锁的问题 轉貼
查看>>