javascript - 向 pageleave 的服务器发送数据(RRWEB 事件)
问题描述
我正在尝试在 pageleave 上发送 rrweb 事件。有两个选项可以使用 sendBeacon 或 fetch api 调用将数据发送到服务器。但是 sendBeacon 在 rrweb 事件上的工作时间不超过 5 秒,并且 fetch 在 pageleave 上被取消,我目前的实现是这样的
var params = new URLSearchParams({
key : 'data',
values : JSON.stringify(sessionPayload)
});
navigator.sendBeacon(`${this.apiHost}/session`, params);
我怎样才能有效地解决将数据发送到服务器的问题。
document.addEventListener("visibilitychange", function() {
if (document.visibilityState === 'hidden') {
sendRecording(); //sends the recording to server
sessionRecordingEvents = [] //empties the event array
} else {
startRecording(); //starts recording again
}
});