事件API專武:Beacon API

經典使用場景是用來**蒐集事件並傳送到後端伺服器**
因為只是要蒐集事件,所以其實直接往後端傳即可,根本不用在乎後端回傳什麼
這樣就跟一般AJAX差很多了

Example use cases of the Beacon API are logging activity and sending analytics data to the server.

尤其是在**網頁要關掉那一刻**傳出的事件,用原本的AJAX是包準傳不出去的
為什麼?
因為瀏覽器不會理會那些在網頁關閉瞬間要求的AJAX,但Beacon API送出去的可以

如何使用

必須要考慮支援程度的問題

其實是老生常談了,想用比較潮的API就是該死
IE根本跟樂高一樣

偵測支不支援的方式如下

if (navigator.sendBeacon) {
  // support
} else {
  // not supported
}

example

如果要單純的API範例可以去Using the Beacon API這邊看
我個人覺得Beacon必須要有Ajax做備援方案拉
所以底下的寫法會比較兼容一點

比如說我要傳送前端的事件給後端…

可以運作的範例可以參考這裡