本文介绍各插件配置项说明、注意事项等。
SDK初始化
SDK初始化配置项说明
字段 | 类型 | 默认值 | 是否必填 | 说明 |
appKey | string | 无 | 是 | EMAS控制台申请应用后分配的appKey |
appSecret | string | 无 | 是 | EMAS控制台申请应用后分配的appSecret |
appVersion | string | 无 | 否 | 当前应用的版本号 非必填 |
channel | string | 无 | 否 | 当前应用渠道号 |
userNick | string | 无 | 否 | 用户昵称 |
userId | string | 无 | 否 | 用户id |
loggerLevel | string | 无 | 否 | 日志级别 'debug': debug级别 不填写则默认线上模式 |
示例
// SDK 初始化
var apm = new window.EMAS.APM({
appKey: 'appKey', // EMAS 控制台创建应用后分配
appSecret: 'appSecret', // EMAS 控制台创建应用后分配
appVersion: 'appVersion', // 应用版本号
channel: 'channel', // 应用渠道号
userNick: 'userNick', // 用户昵称
userId: 'userId', // 用户id
});
插件配置
插件配置项说明
插件名 | 字段 | 类型 | 默认值 | 是否必填 | 说明 |
pv | autoPV | boolean | true | 否 | 是否自动发送PV数据,打开后会在SDK启动时自动进行一次上报。 |
enableHistory | boolean | false | 否 | 用于History Router的单页面应用,当开启后页面切换时会自动上报PV。需要开启autoPv,配合使用。 | |
enableHash | boolean | false | 否 | 用于Hash Router的单页面应用,当开启后页面切换时会自动上报PV。需要开启autoPv,配合使用。 | |
jsError | disable | boolean | false | 否 | jsError插件开关 |
disableError | boolean | false | 否 | 是否关闭error类型的错误检测 | |
disableUnhandledRejection | boolean | false | 否 | 是否关闭unhandledRejection类型的错误检测 | |
ignoreList | (string|RegExp|function)[] | [] | 否 | 与error.message匹配,忽略能匹配的JS错误 | |
request | disable | boolean | false | 否 | request插件开关 |
disableFetch | boolean | false | 否 | 是否忽略Fetch类型的错误 | |
disableXHR | boolean | false | 否 | 是否忽略XHR类型的请求 | |
ignoreList | (string|RegExp|function)[] | [] | 否 | 与requestUri匹配,忽略能匹配的请求 | |
resource | disable | boolean | false | 否 | resource插件开关 |
ignoreList | (string|RegExp|function)[] | [] | 否 | 与requestUri匹配,忽略能匹配的请求 | |
whiteScreen | disable | boolean | false | 否 | 白屏插件开关 |
when | string[] | ["timeout", "visibilitychange", "error", "unhandledrejection", "load"] | 否 | 进行白屏检测的时机,默认包括所有支持的时机 | |
timeout | number | 3000 | 否 | 当when包括timeout时,对应触发检测的倒计时时间 | |
performance | disable | boolean | false | 否 | 性能插件开关 |
disableCLS | boolean | false | 否 | 是否开启cls指标检测 | |
disableLCP | boolean | false | 否 | 是否开启lcp指标检测 | |
disableINP | boolean | false | 否 | 是否开启inp指标检测 | |
disableFCP | boolean | false | 否 | 是否开启fcp指标检测 | |
disableFP | boolean | false | 否 | 是否开启fp指标检测 | |
disableTTFB | boolean | false | 否 | 是否开启ttfb指标检测 | |
disableNavigationTiming | boolean | false | 否 | 是否开启navigationTiming指标检测 |
SDK启动
/**
* 启动SDK
* @method start
* @params {{ [key: string]: Record<string, string> }} config 插件配置项
* @returns {object} 返回各插件实例对象,用于调用插件实例对象API
*/
start(config?: { [key: string]: Record<string, any> } ) : object
示例
const apm = new window.EMAS.APM({
appKey: 'appKey', // EMAS 控制台创建应用后分配
appSecret: 'appSecret', // EMAS 控制台创建应用后分配
});
const plugins = apm.start({
pv: {
autoPv: true,
enableHistory: true,
},
request: {
disableXHR: true,
ignoreList: ['https://xxx.xx.xx'],
},
});
// 获取插件实例
const pv_plugin = plugins.pv;
手动上报PV数据
当自动上报PV不满足的情况下,可以使用手动上报模式
/**
* 手动发送PV埋点
*/
sendPV(): void;
示例
const apm = new window.EMAS.APM({
appKey: 'appKey', // EMAS 控制台创建应用后分配
appSecret: 'appSecret', // EMAS 控制台创建应用后分配
});
const plugins = apm.start({
pv: {
autoPv: false,
},
});
// 手动上报PV
plugins.pv.sendPV();
白屏
白屏得分:
参考业界普遍定义,计算DOM深度得分判断是否白屏。通过遍历页面DOM树上的节点,每遇到一个可视元素,根据深度计算白屏得分:
白屏得分越低越可能白屏,默认DOM得分少于1.5为极有可能白屏,进行上报。