monitor-test
Version:
网页性能监控 18 项数据指标,浏览器信息,错误收集上报方案,前端工程化。
45 lines (36 loc) • 872 B
JavaScript
import { typeOf } from '../../utils'
import { recordBase } from './base'
import { recordPaint } from './paint'
import { recordResource } from './resource'
/**
* 性能监察器
*/
export default () => {
// 白屏时间
if (window.performance.timing) {
window._whiteScreen = new Date() - window.performance.timing.navigationStart
}
function recordRender() {
if (!window.performance.timing) {
return
}
recordBase()
recordPaint()
}
function recordPerformance() {
recordRender()
recordResource()
}
const loadEvent = window.onload
const loadEventType = typeOf(loadEvent)
window.onload = () => {
if (window.requestIdleCallback) {
window.requestIdleCallback(recordPerformance)
} else {
setTimeout(recordPerformance, 0)
}
if (loadEventType === 'Function') {
loadEvent()
}
}
}