語法:
navigator.sendBeacon(url);
navigator.sendBeacon(url, data);
參數(shù):
url
表明 data 將要被發(fā)送到的網(wǎng)絡(luò)地址
data 可選
是將要發(fā)送的 ArrayBuffer兰绣、ArrayBufferView、Blob左电、DOMString、FormData 或 URLSearchParams 類型的數(shù)據(jù)
如何測試:
可以同時(shí)打開兩個(gè)窗口疗韵,觀察刷新和關(guān)閉頁面時(shí)localStorage值得變化
let begin = 0;
window.addEventListener("unload", () => {
const differ = new Date().getTime() - begin;
window.localStorage.setItem('unload', differ);
if(differ <= 5) { // 判斷是刷新還是關(guān)閉
const formData = new FormData();
formData.append("rtspUrl", this.locationUrl);
navigator.sendBeacon("/video/end_kd", formData);
}
});
window.addEventListener("beforeunload",()=>{
begin = new Date().getTime();
window.localStorage.setItem('beforeunload', begin);
})
刷新頁面-時(shí)間差為11
關(guān)閉頁面-時(shí)間差為2