monitor-track 1.13.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/cjs/handlers/error.d.ts +1 -0
- package/cjs/index.js +49 -29
- package/cjs/types/config.d.ts +7 -1
- package/esm/config/index.js +14 -1
- package/esm/handlers/error.d.ts +1 -0
- package/esm/handlers/error.js +18 -16
- package/esm/index.js +5 -2
- package/esm/package.json.js +1 -1
- package/esm/reporter.js +13 -11
- package/esm/types/config.d.ts +7 -1
- package/index.js +48 -28
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -43,9 +43,12 @@ track.init({
|
|
|
43
43
|
| hash | boolean | 否 | false | 路由是否为 hash 模式 |
|
|
44
44
|
| enableBehavior | boolean | 否 | true | 启用用户行为上报 |
|
|
45
45
|
| enableError | boolean | 否 | true | 启用异常信息上报 |
|
|
46
|
+
| enableErrorScreenshot | boolean | 否 | false | 启用异常时的截图上报 |
|
|
47
|
+
| enableErrorEvent | boolean | 否 | false | 启用异常时的录像上报 |
|
|
46
48
|
| enableVisualTrack | boolean | 否 | false | 启用可视化埋点上报 |
|
|
47
49
|
| enableLagTrack | boolean | 否 | false | 启用页面卡顿信息上报 |
|
|
48
50
|
| lagTimeout | number | 否 | 400 | 页面卡顿上报的阈值时间(毫秒) |
|
|
51
|
+
| enableRecord | boolean | 否 | false | 启用页面录制 |
|
|
49
52
|
| ignore | 见下方 ignore | 否 | false | 忽略上报的信息 |
|
|
50
53
|
| customPayload | string | 否 | false | 自定义 payload |
|
|
51
54
|
| enable | boolean | 否 | false | 是否开启日志收集,默认关闭 |
|
package/cjs/handlers/error.d.ts
CHANGED
package/cjs/index.js
CHANGED
|
@@ -44,8 +44,11 @@ const Config = {
|
|
|
44
44
|
hash: false,
|
|
45
45
|
enableBehavior: true,
|
|
46
46
|
enableError: true,
|
|
47
|
+
enableErrorScreenshot: false,
|
|
48
|
+
enableErrorEvent: false,
|
|
47
49
|
enableVisualTrack: false,
|
|
48
|
-
enableLagTrack:
|
|
50
|
+
enableLagTrack: true,
|
|
51
|
+
enableRecord: false,
|
|
49
52
|
ignore: {
|
|
50
53
|
urls: [],
|
|
51
54
|
errors: [],
|
|
@@ -57,27 +60,39 @@ const Config = {
|
|
|
57
60
|
* @param config 配置项
|
|
58
61
|
*/
|
|
59
62
|
function setConfig(config) {
|
|
63
|
+
var _a;
|
|
60
64
|
Object.assign(Config, config);
|
|
65
|
+
if (!Config.ignore)
|
|
66
|
+
Config.ignore = {};
|
|
67
|
+
if (Array.isArray((_a = Config.ignore) === null || _a === void 0 ? void 0 : _a.errors)) {
|
|
68
|
+
['ResizeObserver loop limit exceeded', 'ResizeObserver loop completed with undelivered notifications.', 'Cancel'].forEach((item) => {
|
|
69
|
+
if (!Config.ignore.errors.includes(item)) {
|
|
70
|
+
Config.ignore.errors.push(item);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
61
74
|
}
|
|
62
75
|
|
|
63
|
-
var version = "1.
|
|
76
|
+
var version = "1.14.0";
|
|
64
77
|
|
|
65
78
|
const eventsMatrix = [[]];
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
eventsMatrix.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
function enableRecordFunc() {
|
|
80
|
+
rrweb__namespace.record({
|
|
81
|
+
emit(event, isCheckout) {
|
|
82
|
+
// isCheckout 是一个标识,告诉你重新制作了快照
|
|
83
|
+
if (isCheckout) {
|
|
84
|
+
eventsMatrix.push([]);
|
|
85
|
+
}
|
|
86
|
+
if (eventsMatrix.length > 2) {
|
|
87
|
+
eventsMatrix.shift();
|
|
88
|
+
}
|
|
89
|
+
const lastEvents = eventsMatrix[eventsMatrix.length - 1];
|
|
90
|
+
lastEvents.push(event);
|
|
91
|
+
},
|
|
92
|
+
// 每30秒重新制作快照
|
|
93
|
+
checkoutEveryNms: 30 * 1000,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
81
96
|
/**
|
|
82
97
|
* @description 错误事件触发后的操作
|
|
83
98
|
*/
|
|
@@ -903,7 +918,7 @@ function reportFunc(data) {
|
|
|
903
918
|
delete ERROR_MESSAGE_MAP[message];
|
|
904
919
|
}, 3000);
|
|
905
920
|
const { p, pid, host, bN, pt } = payload;
|
|
906
|
-
if ((_c = data.error) === null || _c === void 0 ? void 0 : _c.events) {
|
|
921
|
+
if (((_c = data.error) === null || _c === void 0 ? void 0 : _c.events) && Config.enableErrorEvent) {
|
|
907
922
|
hasErrorEvent = true;
|
|
908
923
|
const errorEvent = data.error.events;
|
|
909
924
|
const delayTime = Math.ceil(Math.random() * 10000);
|
|
@@ -914,17 +929,19 @@ function reportFunc(data) {
|
|
|
914
929
|
});
|
|
915
930
|
}, delayTime < 3500 ? 3500 : delayTime);
|
|
916
931
|
}
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
932
|
+
if (Config.enableErrorScreenshot) {
|
|
933
|
+
picturePromise = getFullScreenShoot(filename)
|
|
934
|
+
.then((file) => {
|
|
935
|
+
return new Promise((res) => {
|
|
936
|
+
xhrFunc(file.name, data.uuid, filename, file, res, (result) => {
|
|
937
|
+
payload.error.pic = result;
|
|
938
|
+
}, { p, pid, host, bN, pt });
|
|
939
|
+
});
|
|
940
|
+
})
|
|
941
|
+
.catch((err) => {
|
|
942
|
+
payload.error.picError = (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString());
|
|
923
943
|
});
|
|
924
|
-
}
|
|
925
|
-
.catch((err) => {
|
|
926
|
-
payload.error.picError = (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString());
|
|
927
|
-
});
|
|
944
|
+
}
|
|
928
945
|
}
|
|
929
946
|
}
|
|
930
947
|
return picturePromise
|
|
@@ -1398,8 +1415,10 @@ class Track {
|
|
|
1398
1415
|
this.listenPageLag = () => {
|
|
1399
1416
|
this.observer = new PerformanceObserver((list) => {
|
|
1400
1417
|
list.getEntries().forEach((entry) => {
|
|
1401
|
-
if (entry.duration > (Config.lagTimeout ||
|
|
1418
|
+
if (entry.duration > (Config.lagTimeout || 800)) {
|
|
1402
1419
|
handlePageLag(entry.duration);
|
|
1420
|
+
// eslint-disable-next-line no-console
|
|
1421
|
+
console.log('监测到页面卡顿:', entry.duration, entry, location.href);
|
|
1403
1422
|
}
|
|
1404
1423
|
});
|
|
1405
1424
|
});
|
|
@@ -1436,6 +1455,7 @@ class Track {
|
|
|
1436
1455
|
Config.enableError && this.addListenJSUncaught();
|
|
1437
1456
|
Config.enableVisualTrack && this.visualTrack();
|
|
1438
1457
|
Config.enableLagTrack && this.listenPageLag();
|
|
1458
|
+
Config.enableRecord && enableRecordFunc();
|
|
1439
1459
|
this.addListenUnload();
|
|
1440
1460
|
initWindowObjectFunction();
|
|
1441
1461
|
}
|
package/cjs/types/config.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ export interface IConfig {
|
|
|
16
16
|
enableBehavior?: boolean;
|
|
17
17
|
/** 启用异常信息上报 */
|
|
18
18
|
enableError?: boolean;
|
|
19
|
+
/** 启用异常截图上报 */
|
|
20
|
+
enableErrorScreenshot?: boolean;
|
|
21
|
+
/** 启用异常录像上报 */
|
|
22
|
+
enableErrorEvent?: boolean;
|
|
19
23
|
maxLength?: number;
|
|
20
24
|
/** 忽略上报的信息 */
|
|
21
25
|
ignore?: {
|
|
@@ -37,8 +41,10 @@ export interface IConfig {
|
|
|
37
41
|
enableVisualTrack?: boolean;
|
|
38
42
|
/** 启用页面卡顿上报 */
|
|
39
43
|
enableLagTrack?: boolean;
|
|
40
|
-
/**
|
|
44
|
+
/** 上报页面卡顿的超时时间 */
|
|
41
45
|
lagTimeout?: number;
|
|
46
|
+
/** 是否启用页面录制 */
|
|
47
|
+
enableRecord: boolean;
|
|
42
48
|
}
|
|
43
49
|
type IParams = {
|
|
44
50
|
name: string;
|
package/esm/config/index.js
CHANGED
|
@@ -10,8 +10,11 @@ const Config = {
|
|
|
10
10
|
hash: false,
|
|
11
11
|
enableBehavior: true,
|
|
12
12
|
enableError: true,
|
|
13
|
+
enableErrorScreenshot: false,
|
|
14
|
+
enableErrorEvent: false,
|
|
13
15
|
enableVisualTrack: false,
|
|
14
|
-
enableLagTrack:
|
|
16
|
+
enableLagTrack: true,
|
|
17
|
+
enableRecord: false,
|
|
15
18
|
ignore: {
|
|
16
19
|
urls: [],
|
|
17
20
|
errors: [],
|
|
@@ -23,7 +26,17 @@ const Config = {
|
|
|
23
26
|
* @param config 配置项
|
|
24
27
|
*/
|
|
25
28
|
function setConfig(config) {
|
|
29
|
+
var _a;
|
|
26
30
|
Object.assign(Config, config);
|
|
31
|
+
if (!Config.ignore)
|
|
32
|
+
Config.ignore = {};
|
|
33
|
+
if (Array.isArray((_a = Config.ignore) === null || _a === void 0 ? void 0 : _a.errors)) {
|
|
34
|
+
['ResizeObserver loop limit exceeded', 'ResizeObserver loop completed with undelivered notifications.', 'Cancel'].forEach((item) => {
|
|
35
|
+
if (!Config.ignore.errors.includes(item)) {
|
|
36
|
+
Config.ignore.errors.push(item);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
27
40
|
}
|
|
28
41
|
|
|
29
42
|
export { Config, setConfig };
|
package/esm/handlers/error.d.ts
CHANGED
package/esm/handlers/error.js
CHANGED
|
@@ -7,21 +7,23 @@ import { setReportValue, getReport } from '../config/global.js';
|
|
|
7
7
|
import { report } from '../reporter.js';
|
|
8
8
|
|
|
9
9
|
const eventsMatrix = [[]];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
eventsMatrix.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
10
|
+
function enableRecordFunc() {
|
|
11
|
+
rrweb.record({
|
|
12
|
+
emit(event, isCheckout) {
|
|
13
|
+
// isCheckout 是一个标识,告诉你重新制作了快照
|
|
14
|
+
if (isCheckout) {
|
|
15
|
+
eventsMatrix.push([]);
|
|
16
|
+
}
|
|
17
|
+
if (eventsMatrix.length > 2) {
|
|
18
|
+
eventsMatrix.shift();
|
|
19
|
+
}
|
|
20
|
+
const lastEvents = eventsMatrix[eventsMatrix.length - 1];
|
|
21
|
+
lastEvents.push(event);
|
|
22
|
+
},
|
|
23
|
+
// 每30秒重新制作快照
|
|
24
|
+
checkoutEveryNms: 30 * 1000,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
25
27
|
/**
|
|
26
28
|
* @description 错误事件触发后的操作
|
|
27
29
|
*/
|
|
@@ -173,4 +175,4 @@ function getFullScreenShoot(filename) {
|
|
|
173
175
|
});
|
|
174
176
|
}
|
|
175
177
|
|
|
176
|
-
export { getFullScreenShoot, getUserEvents, handleError, ignoreError, setCaughtError, setPromiseError, setResourceError };
|
|
178
|
+
export { enableRecordFunc, getFullScreenShoot, getUserEvents, handleError, ignoreError, setCaughtError, setPromiseError, setResourceError };
|
package/esm/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Config, setConfig } from './config/index.js';
|
|
|
2
2
|
import { initReport, recordXMLHttpRequestLog, hackFetch } from './config/global.js';
|
|
3
3
|
import { monitorTrackSessionId } from './constant.js';
|
|
4
4
|
import { handlePageLag, _history, handleHistoryChange } from './handlers/pv.js';
|
|
5
|
-
import { handleError } from './handlers/error.js';
|
|
5
|
+
import { enableRecordFunc, handleError } from './handlers/error.js';
|
|
6
6
|
import { handleClick, handleBlur, handleScroll } from './handlers/user-activity.js';
|
|
7
7
|
import { initWindowObjectFunction, on, off, visualTrackFunc, handleLocationChange } from './utils/index.js';
|
|
8
8
|
|
|
@@ -18,8 +18,10 @@ class Track {
|
|
|
18
18
|
this.listenPageLag = () => {
|
|
19
19
|
this.observer = new PerformanceObserver((list) => {
|
|
20
20
|
list.getEntries().forEach((entry) => {
|
|
21
|
-
if (entry.duration > (Config.lagTimeout ||
|
|
21
|
+
if (entry.duration > (Config.lagTimeout || 800)) {
|
|
22
22
|
handlePageLag(entry.duration);
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
console.log('监测到页面卡顿:', entry.duration, entry, location.href);
|
|
23
25
|
}
|
|
24
26
|
});
|
|
25
27
|
});
|
|
@@ -56,6 +58,7 @@ class Track {
|
|
|
56
58
|
Config.enableError && this.addListenJSUncaught();
|
|
57
59
|
Config.enableVisualTrack && this.visualTrack();
|
|
58
60
|
Config.enableLagTrack && this.listenPageLag();
|
|
61
|
+
Config.enableRecord && enableRecordFunc();
|
|
59
62
|
this.addListenUnload();
|
|
60
63
|
initWindowObjectFunction();
|
|
61
64
|
}
|
package/esm/package.json.js
CHANGED
package/esm/reporter.js
CHANGED
|
@@ -256,7 +256,7 @@ function reportFunc(data) {
|
|
|
256
256
|
delete ERROR_MESSAGE_MAP[message];
|
|
257
257
|
}, 3000);
|
|
258
258
|
const { p, pid, host, bN, pt } = payload;
|
|
259
|
-
if ((_c = data.error) === null || _c === void 0 ? void 0 : _c.events) {
|
|
259
|
+
if (((_c = data.error) === null || _c === void 0 ? void 0 : _c.events) && Config.enableErrorEvent) {
|
|
260
260
|
hasErrorEvent = true;
|
|
261
261
|
const errorEvent = data.error.events;
|
|
262
262
|
const delayTime = Math.ceil(Math.random() * 10000);
|
|
@@ -267,17 +267,19 @@ function reportFunc(data) {
|
|
|
267
267
|
});
|
|
268
268
|
}, delayTime < 3500 ? 3500 : delayTime);
|
|
269
269
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
270
|
+
if (Config.enableErrorScreenshot) {
|
|
271
|
+
picturePromise = getFullScreenShoot(filename)
|
|
272
|
+
.then((file) => {
|
|
273
|
+
return new Promise((res) => {
|
|
274
|
+
xhrFunc(file.name, data.uuid, filename, file, res, (result) => {
|
|
275
|
+
payload.error.pic = result;
|
|
276
|
+
}, { p, pid, host, bN, pt });
|
|
277
|
+
});
|
|
278
|
+
})
|
|
279
|
+
.catch((err) => {
|
|
280
|
+
payload.error.picError = (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString());
|
|
276
281
|
});
|
|
277
|
-
}
|
|
278
|
-
.catch((err) => {
|
|
279
|
-
payload.error.picError = (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString());
|
|
280
|
-
});
|
|
282
|
+
}
|
|
281
283
|
}
|
|
282
284
|
}
|
|
283
285
|
return picturePromise
|
package/esm/types/config.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ export interface IConfig {
|
|
|
16
16
|
enableBehavior?: boolean;
|
|
17
17
|
/** 启用异常信息上报 */
|
|
18
18
|
enableError?: boolean;
|
|
19
|
+
/** 启用异常截图上报 */
|
|
20
|
+
enableErrorScreenshot?: boolean;
|
|
21
|
+
/** 启用异常录像上报 */
|
|
22
|
+
enableErrorEvent?: boolean;
|
|
19
23
|
maxLength?: number;
|
|
20
24
|
/** 忽略上报的信息 */
|
|
21
25
|
ignore?: {
|
|
@@ -37,8 +41,10 @@ export interface IConfig {
|
|
|
37
41
|
enableVisualTrack?: boolean;
|
|
38
42
|
/** 启用页面卡顿上报 */
|
|
39
43
|
enableLagTrack?: boolean;
|
|
40
|
-
/**
|
|
44
|
+
/** 上报页面卡顿的超时时间 */
|
|
41
45
|
lagTimeout?: number;
|
|
46
|
+
/** 是否启用页面录制 */
|
|
47
|
+
enableRecord: boolean;
|
|
42
48
|
}
|
|
43
49
|
type IParams = {
|
|
44
50
|
name: string;
|
package/index.js
CHANGED
|
@@ -38,8 +38,11 @@ var MonitorTrack = (function (uuid, ErrorStackParser, html2canvas, rrweb, axios,
|
|
|
38
38
|
hash: false,
|
|
39
39
|
enableBehavior: true,
|
|
40
40
|
enableError: true,
|
|
41
|
+
enableErrorScreenshot: false,
|
|
42
|
+
enableErrorEvent: false,
|
|
41
43
|
enableVisualTrack: false,
|
|
42
|
-
enableLagTrack:
|
|
44
|
+
enableLagTrack: true,
|
|
45
|
+
enableRecord: false,
|
|
43
46
|
ignore: {
|
|
44
47
|
urls: [],
|
|
45
48
|
errors: [],
|
|
@@ -51,7 +54,17 @@ var MonitorTrack = (function (uuid, ErrorStackParser, html2canvas, rrweb, axios,
|
|
|
51
54
|
* @param config 配置项
|
|
52
55
|
*/
|
|
53
56
|
function setConfig(config) {
|
|
57
|
+
var _a;
|
|
54
58
|
Object.assign(Config, config);
|
|
59
|
+
if (!Config.ignore)
|
|
60
|
+
Config.ignore = {};
|
|
61
|
+
if (Array.isArray((_a = Config.ignore) === null || _a === void 0 ? void 0 : _a.errors)) {
|
|
62
|
+
['ResizeObserver loop limit exceeded', 'ResizeObserver loop completed with undelivered notifications.', 'Cancel'].forEach(function (item) {
|
|
63
|
+
if (!Config.ignore.errors.includes(item)) {
|
|
64
|
+
Config.ignore.errors.push(item);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
55
68
|
}
|
|
56
69
|
|
|
57
70
|
/******************************************************************************
|
|
@@ -123,24 +136,26 @@ var MonitorTrack = (function (uuid, ErrorStackParser, html2canvas, rrweb, axios,
|
|
|
123
136
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
124
137
|
};
|
|
125
138
|
|
|
126
|
-
var version = "1.
|
|
139
|
+
var version = "1.14.0";
|
|
127
140
|
|
|
128
141
|
var eventsMatrix = [[]];
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
eventsMatrix.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
function enableRecordFunc() {
|
|
143
|
+
rrweb__namespace.record({
|
|
144
|
+
emit: function (event, isCheckout) {
|
|
145
|
+
// isCheckout 是一个标识,告诉你重新制作了快照
|
|
146
|
+
if (isCheckout) {
|
|
147
|
+
eventsMatrix.push([]);
|
|
148
|
+
}
|
|
149
|
+
if (eventsMatrix.length > 2) {
|
|
150
|
+
eventsMatrix.shift();
|
|
151
|
+
}
|
|
152
|
+
var lastEvents = eventsMatrix[eventsMatrix.length - 1];
|
|
153
|
+
lastEvents.push(event);
|
|
154
|
+
},
|
|
155
|
+
// 每30秒重新制作快照
|
|
156
|
+
checkoutEveryNms: 30 * 1000
|
|
157
|
+
});
|
|
158
|
+
}
|
|
144
159
|
/**
|
|
145
160
|
* @description 错误事件触发后的操作
|
|
146
161
|
*/
|
|
@@ -949,7 +964,7 @@ var MonitorTrack = (function (uuid, ErrorStackParser, html2canvas, rrweb, axios,
|
|
|
949
964
|
delete ERROR_MESSAGE_MAP[message_1];
|
|
950
965
|
}, 3000);
|
|
951
966
|
var p_1 = payload.p, pid_1 = payload.pid, host_1 = payload.host, bN_1 = payload.bN, pt_1 = payload.pt;
|
|
952
|
-
if ((_c = data.error) === null || _c === void 0 ? void 0 : _c.events) {
|
|
967
|
+
if (((_c = data.error) === null || _c === void 0 ? void 0 : _c.events) && Config.enableErrorEvent) {
|
|
953
968
|
hasErrorEvent = true;
|
|
954
969
|
var errorEvent_1 = data.error.events;
|
|
955
970
|
var delayTime = Math.ceil(Math.random() * 10000);
|
|
@@ -960,16 +975,18 @@ var MonitorTrack = (function (uuid, ErrorStackParser, html2canvas, rrweb, axios,
|
|
|
960
975
|
});
|
|
961
976
|
}, delayTime < 3500 ? 3500 : delayTime);
|
|
962
977
|
}
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
978
|
+
if (Config.enableErrorScreenshot) {
|
|
979
|
+
picturePromise = getFullScreenShoot(filename)
|
|
980
|
+
.then(function (file) {
|
|
981
|
+
return new Promise(function (res) {
|
|
982
|
+
xhrFunc(file.name, data.uuid, filename, file, res, function (result) {
|
|
983
|
+
payload.error.pic = result;
|
|
984
|
+
}, { p: p_1, pid: pid_1, host: host_1, bN: bN_1, pt: pt_1 });
|
|
985
|
+
});
|
|
986
|
+
})["catch"](function (err) {
|
|
987
|
+
payload.error.picError = (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString());
|
|
969
988
|
});
|
|
970
|
-
}
|
|
971
|
-
payload.error.picError = (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString());
|
|
972
|
-
});
|
|
989
|
+
}
|
|
973
990
|
}
|
|
974
991
|
}
|
|
975
992
|
return picturePromise
|
|
@@ -1450,8 +1467,10 @@ var MonitorTrack = (function (uuid, ErrorStackParser, html2canvas, rrweb, axios,
|
|
|
1450
1467
|
this.listenPageLag = function () {
|
|
1451
1468
|
_this.observer = new PerformanceObserver(function (list) {
|
|
1452
1469
|
list.getEntries().forEach(function (entry) {
|
|
1453
|
-
if (entry.duration > (Config.lagTimeout ||
|
|
1470
|
+
if (entry.duration > (Config.lagTimeout || 800)) {
|
|
1454
1471
|
handlePageLag(entry.duration);
|
|
1472
|
+
// eslint-disable-next-line no-console
|
|
1473
|
+
console.log('监测到页面卡顿:', entry.duration, entry, location.href);
|
|
1455
1474
|
}
|
|
1456
1475
|
});
|
|
1457
1476
|
});
|
|
@@ -1488,6 +1507,7 @@ var MonitorTrack = (function (uuid, ErrorStackParser, html2canvas, rrweb, axios,
|
|
|
1488
1507
|
Config.enableError && this.addListenJSUncaught();
|
|
1489
1508
|
Config.enableVisualTrack && this.visualTrack();
|
|
1490
1509
|
Config.enableLagTrack && this.listenPageLag();
|
|
1510
|
+
Config.enableRecord && enableRecordFunc();
|
|
1491
1511
|
this.addListenUnload();
|
|
1492
1512
|
initWindowObjectFunction();
|
|
1493
1513
|
};
|