in src/trace/segment.ts [24:43]
export default function traceSegment(options: CustomOptionsType) {
const segments = [] as SegmentFields[];
// inject interceptor
xhrInterceptor(options, segments);
windowFetch(options, segments);
window.addEventListener('beforeunload', () => {
if (!segments.length) {
return;
}
new Report('SEGMENTS', options.collector).sendByBeacon(segments);
});
//report per options.traceTimeInterval min
setInterval(() => {
if (!segments.length) {
return;
}
new Report('SEGMENTS', options.collector).sendByXhr(segments);
segments.splice(0, segments.length);
}, options.traceTimeInterval);
}