首页 > 解决方案 > 向 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
  }
});

标签: javascriptnode.jsapiscreen-recording

解决方案


推荐阅读