2020-04-24 13:39:25 -04:00

32 lines
908 B
JavaScript

window.onload = function () {
var idempotency =
Math.random().toString(36).substring(2, 15) +
Math.random().toString(36).substring(2, 15);
function sendUpdate() {
try {
if (document.hidden) {
return;
}
var xhr = new XMLHttpRequest();
xhr.open(
"POST",
"{{protocol}}://{{request.site.domain|default:request.META.HTTP_HOST}}{{endpoint}}",
true
);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(
JSON.stringify({
idempotency: idempotency,
referrer: document.referrer,
location: window.location.href,
loadTime:
window.performance.timing.domContentLoadedEventEnd -
window.performance.timing.navigationStart,
})
);
} catch { }
}
setInterval(sendUpdate, parseInt("{{heartbeat_frequency}}"));
sendUpdate();
};