navigator.sendBeancon方法簡介

之因此介紹這個還在草案中的方法,是源於最近新作的一個活動。該活動有個需求,就是用戶離開該頁面的某個時間段以後,發個請求給該用戶送券。後來是經過setTimeout來作的,用戶離開該頁面,該頁面進入後臺。這時在頁面中設置的定時器依然是有效的,可是不一樣手機對這個有效時間的兼容性不同,有長有短。safari瀏覽器則是暫停的。web

navigator.sendBeacon() 方法能夠用來從用戶代理向服務器異步地發送小的HTTP數據。這個方法目前還在實驗階段,暫時還沒法使用在項目當中。就算不用考慮兼容性,使用場景也比較少。這個方法主要用於知足統計和診斷代碼的須要,一般嘗試在卸載(unload)文檔以前向web服務器發送數據,同時並不會延遲頁面的卸載或影響下一導航的載入性能。瀏覽器

簡單的例子以下:服務器

window.addEventListener('unload', logData, false);

function logData() {
    navigator.sendBeacon("/log", analyticsData);
}

詳細的介紹參考連接:https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator/sendBeacon#Browser_compatibility異步

以上都是在頁面離開,或頁面進入後臺時能夠調用的一些方法的簡單整理。若有問題或是其餘可用的方法歡迎留言。性能

相關文章
相關標籤/搜索