sendBeacon è un metodo disponibile in JavaScript che consente di inviare dati in modo asincrono e non bloccante al server.
È particolarmente utile per tracciare eventi, inviare analitiche o salvare dati quando una pagina sta per chiudersi, evitando che la richiesta venga interrotta dal browser.
Viene spesso utilizzato congiuntamente all’evento visibilitychange dell’oggetto document di JavaScript.
Indice
sendBeacon(): perché utilizzarlo
Se vuoi inviare dati al server quando una applicazione web è prossima ad essere chiusa, utilizzare i metodi tradizionali per effettuare chiamate AJAX non è una buona idea.
Utilizzando infatti questi metodi, non è garantito il fatto che il dato giunga al server prima che la pagina venga effettivamente chiusa.
sendBeacon() è stato implementato proprio per fornire un metodo affidabile per comunicare dati al server in situazioni come quelle che ho descritto.
Come si usa sendBeacon() in JavaScript
Il metodo sendBeacon() è disponibile nell’oggetto window.navigator di JavaScript.
sendBeacon(url); sendBeacon(url, data);
Il campo data può essere un ArrayBuffer, un TypedArray, un DataView, un Blob, un oggetto standard, un FormData oppure un URLSearchParams, contenente le informazioni dal mandare al server.
Puoi trovare altre informazioni sulla pagina di MDN dedicata a sendBeacon.
Video di esempio
In questo video utilizzerò sendBeacon() congiuntamente all’evento visibilitychange dell’oggetto document.
Se questo video fosse stato di tuo interesse, potresti valutare di iscriverti al canale YouTube.
Approfondimenti
Su questo sito sono presenti numerosi contenuti relativi a JavaScript ed allo sviluppo web.
Eccone alcuni:
- window load JavaScript: come funziona?
- Promise JavaScript: definizione ed esempio pratico
- TypeScript: cosa è? Perché si usa?
- Eseguire codice JavaScript su qualunque pagina web
- End to end testing: cosa è?
- RxJS cosa è e dove viene utilizzata
- JavaScript Keyboard Event: eventi tastiera
Conclusioni
L’uso di sendBeacon in JavaScript è una soluzione ideale per inviare dati senza interferire con l’esperienza utente, specialmente in scenari come analisi di traffico, logging di eventi e tracciamento delle sessioni.
Tuttavia, è importante essere consapevoli delle sue limitazioni e usarlo nei contesti appropriati per massimizzarne l’efficacia.


