In JavaScript possiamo inviare dati analitici al server in modo efficiente.
La soluzione consiste nell'usare il metodo navigator.sendBeacon() per inviare i dati in modo asincrono e senza influenzare la performance del web server ed il caricamento delle pagine successive. Infatti questo metodo può essere usato quando l'utente naviga su un'altra pagina del sito. L'implementazione è la seguente:
'use strict';
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'hidden') {
navigator.sendBeacon('/api/stats', navigator.userAgent);
}
});