企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
根据 Performance API 我们可以做一些简单的性能检测 https://developer.mozilla.org/zh-CN/docs/Web/API/PerformanceTiming,根据文档中的大部分内容,整理了以下代码,仅供参考。 ~~~ const timing = window.performance.timing; const getTimeStr = time => { if (time < 1) { return "0"; } const second = 1000; const minute = second * 60; const hour = 60 * minute; let res = ""; const handleRes = (time, rate, str) => { if (time > rate) { const pre = Math.floor(time / rate); return [pre * rate, pre + str]; } } if (time > hour) { const lsr = handleRes(time, hour, "h"); time -= lsr[0]; res += lsr[1]; } if (time > minute) { const lsr = handleRes(time, minute, "m"); time -= lsr[0]; res += lsr[1]; } if (time > second) { const lsr = handleRes(time, second, "s"); time -= lsr[0]; res += lsr[1]; } return res + time + "ms"; } const showLog = () => { console.log("立即执行脚本耗时:", getTimeStr(timing.domContentLoadedEventEnd - timing.domContentLoadedEventStart)); console.log("load (en-US)事件耗时:", getTimeStr(timing.loadEventEnd - timing.loadEventStart)); console.log("unload (en-US)事件耗时:", getTimeStr(timing.unloadEventEnd - timing.unloadEventStart)); console.log("tcp连接耗时:", getTimeStr(timing.connectEnd - timing.connectStart)); console.log("DNS查询耗时:", getTimeStr(timing.domainLookupEnd - timing.domainLookupStart)); console.log("HTTP响应耗时:", getTimeStr(timing.responseEnd - timing.responseStart)); console.log("dom解析耗时:", getTimeStr(timing.domInteractive - timing.domLoading)); console.log("文档解析耗时(dom解析+内嵌资源解析):", getTimeStr(timing.domComplete - timing.domLoading)); console.log("HTTP重定向耗时:", getTimeStr(timing.redirectEnd - timing.redirectStart)); console.log("白屏时间", getTimeStr(timing.domComplete - timing.fetchStart)); console.log("domReady", getTimeStr(timing.domContentLoadedEventEnd - timing.fetchStart)); console.log("onLoad", getTimeStr(timing.loadEventEnd - timing.fetchStart)); } showLog(); ~~~