From 3d3fdb308556f01dbfcc10258b54cec70d1d3102 Mon Sep 17 00:00:00 2001 From: Enes Kutay SEZEN Date: Mon, 27 Dec 2021 11:37:09 -0500 Subject: [PATCH] Use sendBeacon --- src/modules/tracker.js | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/modules/tracker.js b/src/modules/tracker.js index b3101efd..1e90311b 100644 --- a/src/modules/tracker.js +++ b/src/modules/tracker.js @@ -501,13 +501,17 @@ class Tracker { const requestMethod = 'POST'; const requestBody = applyParams(bodyParams, { ...this.options, requestMethod }); - this.requests.queue( - requestURL, - requestMethod, - requestBody, - networkParameters, - ); - this.requests.send(); + if (navigator && navigator.sendBeacon) { + navigator.sendBeacon(requestURL, JSON.stringify(requestBody)); + } else { + this.requests.queue( + requestURL, + requestMethod, + requestBody, + networkParameters, + ); + this.requests.send(); + } return true; } @@ -578,13 +582,17 @@ class Tracker { const requestMethod = 'POST'; const requestBody = applyParams(bodyParams, { ...this.options, requestMethod }); - this.requests.queue( - requestURL, - requestMethod, - requestBody, - networkParameters, - ); - this.requests.send(); + if (navigator && navigator.sendBeacon) { + navigator.sendBeacon(requestURL, JSON.stringify(requestBody)); + } else { + this.requests.queue( + requestURL, + requestMethod, + requestBody, + networkParameters, + ); + this.requests.send(); + } return true; }