Beacon API
少量のデータをブラウザに預け、ページが閉じる瞬間であっても送信を約束してもらうための呼び出し。
古くて厄介な問題を解決するために生まれたメソッドだ。ユーザーがページを離れる際にログを送りたければ、かつてはunloadハンドラ内で同期的なネットワークリクエストを行うしかなく、これが画面遷移をブロックして次のページを遅く感じさせた。ブラウザ側はunload中の通信をキャンセルするようになり、その結果、アナリティクスは黙ってデータを失い始めた。navigator.sendBeacon()ならリクエストはブラウザに引き渡され、ドキュメントの寿命とは無関係に送信される。制約として、POSTしか使えず、レスポンスは読めず、サイズにも上限がある。現在の推奨は、unloadではなく非表示状態への遷移時に送ることだ。モバイルブラウザはunloadを発火しないことが多いためである。