1.页面团体机能
经由历程浏览器供应的 window.performance.timing 要领,我们能够获得网页每一个处置惩罚阶段的准确时候。翻开一个页面后,这些信息会被浏览器记录下来,我们直接在控制台输出,就能够检察效果
PerformanceTiming 接口包含了当前页面中与时候相干的信息。
能够经由历程只读属性Performance.timing 获得完成该接口的一个对象。
var timing = window.Performance.timing;
console.log(timing);
概况以下:
https://developer.mozilla.org…
PerformanceTiming 接口不包含任何继续属性。
PerformanceTiming.navigationStart 只读
是一个无标记long long 型的毫秒数,表征了从同一个浏览器上下文的上一个文档卸载(unload)完毕时的UNIX时候戳。假如没有上一个文档,这个值会和PerformanceTiming.fetchStart雷同。
PerformanceTiming.unloadEventStart 只读
是一个无标记long long 型的毫秒数,表征了unload事宜抛出时的UNIX时候戳。假如没有上一个文档,or if the previous document, or one of the needed redirects, is not of the same origin, 这个值会返回0.
PerformanceTiming.unloadEventEnd 只读
是一个无标记long long 型的毫秒数,表征了unload事宜处置惩罚完成时的UNIX时候戳。假如没有上一个文档,or if the previous document, or one of the needed redirects, is not of the same origin, 这个值会返回0.
PerformanceTiming.redirectStart 只读
是一个无标记long long 型的毫秒数,表征了第一个HTTP重定向最先时的UNIX时候戳。假如没有重定向,或许重定向中的一个差别源,这个值会返回0.
PerformanceTiming.redirectEnd 只读
是一个无标记long long 型的毫秒数,表征了末了一个HTTP重定向完成时(也就是说是HTTP响应的末了一个比特直接被收到的时候)的UNIX时候戳。假如没有重定向,或许重定向中的一个差别源,这个值会返回0.
PerformanceTiming.fetchStart 只读
是一个无标记long long 型的毫秒数,表征了浏览器准备好运用HTTP请求来猎取(fetch)文档的UNIX时候戳。这个时候点会在搜检任何运用缓存之前。
PerformanceTiming.domainLookupStart 只读
是一个无标记long long 型的毫秒数,表征了域名查询最先的UNIX时候戳。假如运用了延续衔接(persistent connection),或许这个信息存储到了缓存或许当地资本上,这个值将和 PerformanceTiming.fetchStart一致。
PerformanceTiming.domainLookupEnd 只读
是一个无标记long long 型的毫秒数,表征了域名查询完毕的UNIX时候戳。假如运用了延续衔接(persistent connection),或许这个信息存储到了缓存或许当地资本上,这个值将和 PerformanceTiming.fetchStart一致。
PerformanceTiming.connectStart 只读
是一个无标记long long 型的毫秒数,返回HTTP请求最先向服务器发送时的Unix毫秒时候戳。假如运用耐久衔接(persistent connection),则返回值等同于fetchStart属性的值。
PerformanceTiming.connectEnd 只读
是一个无标记long long 型的毫秒数,返回浏览器与服务器之间的衔接竖立时的Unix毫秒时候戳。假如竖立的是耐久衔接,则返回值等同于fetchStart属性的值。衔接竖立指的是一切握手和认证历程悉数完毕。
PerformanceTiming.secureConnectionStart 只读
是一个无标记long long 型的毫秒数,返回浏览器与服务器最先平安链接的握手时的Unix毫秒时候戳。假如当前网页不请求平安衔接,则返回0。
PerformanceTiming.requestStart 只读
是一个无标记long long 型的毫秒数,返回浏览器向服务器发出HTTP请求时(或最先读取当地缓存时)的Unix毫秒时候戳。
PerformanceTiming.responseStart 只读
是一个无标记long long 型的毫秒数,返回浏览器从服务器收到(或从当地缓存读取)第一个字节时的Unix毫秒时候戳。假如传输层在最先请求以后失利而且衔接被重开,该属性将会被数制成新的请求的相对应的提议时候。
PerformanceTiming.responseEnd 只读
是一个无标记long long 型的毫秒数,返回浏览器从服务器收到(或从当地缓存读取,或从当地资本读取)末了一个字节时(假如在此之前HTTP衔接已封闭,则返回封闭时)的Unix毫秒时候戳。
PerformanceTiming.domLoading 只读
是一个无标记long long 型的毫秒数,返回当前网页DOM构造最先剖析时(即Document.readyState属性变成“loading”、响应的 readystatechange事宜触发时)的Unix毫秒时候戳。
PerformanceTiming.domInteractive 只读
是一个无标记long long 型的毫秒数,返回当前网页DOM构造完毕剖析、最先加载内嵌资本时(即Document.readyState属性变成“interactive”、响应的readystatechange事宜触发时)的Unix毫秒时候戳。
PerformanceTiming.domContentLoadedEventStart 只读
是一个无标记long long 型的毫秒数,返回当剖析器发送DOMContentLoaded 事宜,即一切须要被实行的剧本已被剖析时的Unix毫秒时候戳。
PerformanceTiming.domContentLoadedEventEnd 只读
是一个无标记long long 型的毫秒数,返回当一切须要马上实行的剧本已被实行(不管实行递次)时的Unix毫秒时候戳。
PerformanceTiming.domComplete 只读
是一个无标记long long 型的毫秒数,返回当前文档剖析完成,即Document.readyState 变成 ‘complete’且相对应的readystatechange 被触发时的Unix毫秒时候戳。
PerformanceTiming.loadEventStart 只读
是一个无标记long long 型的毫秒数,返回该文档下,load事宜被发送时的Unix毫秒时候戳。假如这个事宜还未被发送,它的值将会是0。
PerformanceTiming.loadEventEnd 只读
是一个无标记long long 型的毫秒数,返回当load事宜完毕,即加载事宜完成时的Unix毫秒时候戳。假如这个事宜还未被发送,或许还没有完成,它的值将会是0.
performance支撑状况
http://caniuse.com/#search=pe…
2.window.onerror
运用 window.onerror
https://developer.mozilla.org…
函数参数:
message:毛病信息(字符串)。Available as event (sic!) in HTML onerror=”” handler.
source:发作毛病的剧本URL(字符串)
lineno:发作毛病的行号(数字)
colno:发作毛病的列号(数字)
error:Error对象(对象)
若该函数返回true,则阻挠实行默许事宜处置惩罚函数。
经由历程在 window.onerror 上定义一个事宜监听函数,顺序中代码发生的毛病就会被 window.onerror 上面注册的监听函数捕获到,一般我们会如许完成一个 onerror 的函数
window.onerror = function(msg, url, line, col, error){
var errInfo = {};
errInfo.msg = msg;// 毛病信息
errInfo.url = url;//毛病文件途径
errInfo.line = line;//行号,紧缩事后,然并卵
errInfo.col = col;//列号
if (error && error.stack) {
errInfo.stack = error.stack;
}
// 把毛病信息发送到背景服务器
sendLog(errorInfo);
return true;
};
function sendLog(log){
var img = new Image();
img.src="url?errorInfo="+encodeURIComponent(JSON.stringify(log));
}
3.Script error的处理办法
当加载自差别域的剧本中发作语法(?)毛病时,为防止信息泄漏(拜见bug 363897),语法毛病的细节将不会报告,而代之简朴的”Script error.”。在某些浏览器中,经由历程在<script>运用crossorigin属性并请求服务器发送恰当的CORS HTTP响应头,该行动可被掩盖。
ex:
html的url为www.taobao.com; js途径为https://g.alicdn.com/xxx.js
碰到如许的报错。这是浏览器出于平安性的斟酌,在加载非同源的JS文件时会隐蔽部份信息,包含我们此处想要获得的毛病信息,并给出一个一致的 Script error 提醒,想要处理这个题目,我们须要浏览器端和服务端都做响应的调解
服务器端:
header('Access-Control-Allow-Origin: *');
也能够直接变动nginx的设置许可跨域援用
客户端:
<script src = 'https://blog.sentry.io/js/script.js' crossorigin></script>
服务端必需加许可跨域援用,不然这段js不会实行。。。
更多信息请移步本人博客 https://www.56way.com/p/106.html