成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

不常用卻很有妙用的事件及方法

Richard_Gao / 1445人閱讀

摘要:過早的發(fā)送數(shù)據(jù)可能導(dǎo)致錯(cuò)過收集數(shù)據(jù)的機(jī)會(huì)。因?yàn)橛脩舸硗ǔ?huì)忽略在卸載事件處理器中產(chǎn)生的異步。使用方法,將會(huì)使用戶代理在有機(jī)會(huì)時(shí)異步地向服務(wù)器發(fā)送數(shù)據(jù),同時(shí)不會(huì)延遲頁面的卸載或影響下一導(dǎo)航的載入性能。

1 visibilitychange事件

觸發(fā)條件:瀏覽器標(biāo)簽頁被隱藏或顯示的時(shí)候會(huì)觸發(fā)visibilitychange事件.

使用場(chǎng)景:當(dāng)標(biāo)簽頁顯示或者隱藏時(shí),觸發(fā)一些業(yè)務(wù)邏輯

document.addEventListener("visibilitychange", function() {
  console.log( document.visibilityState );
});
2 storage事件

觸發(fā)條件:使用localStorage or sessionStorage存儲(chǔ)或者修改某個(gè)本地存儲(chǔ)時(shí)

使用場(chǎng)景:標(biāo)簽頁間通信

// AB頁面同源
// 在A 頁面
window.addEventListener("storage", (e) => {console.log(e)})

// 在B 頁面,向120打個(gè)電話
localStorage.setItem("makeCall","120")

// 然后可以在A頁面間有輸出, 可以看出A頁面 收到了B頁面的通知
...key: "makeCall", oldValue: "119", newValue: "120", ...
3 beforeunload事件

觸發(fā)條件:當(dāng)頁面的資源將要卸載(及刷新或者關(guān)閉標(biāo)簽頁前). 當(dāng)頁面依然可見,并且該事件可以被取消只時(shí)

使用場(chǎng)景:關(guān)閉或者刷新頁面時(shí)彈窗確認(rèn),關(guān)閉頁面時(shí)向后端發(fā)送報(bào)告等

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "o/";

  e.returnValue = confirmationMessage;     // Gecko, Trident, Chrome 34+
  return confirmationMessage;              // Gecko, WebKit, Chrome <34
});

4 navigator.sendBeacon

這個(gè)方法主要用于滿足 統(tǒng)計(jì)和診斷代碼 的需要,這些代碼通常嘗試在卸載(unload)文檔之前向web服務(wù)器發(fā)送數(shù)據(jù)。過早的發(fā)送數(shù)據(jù)可能導(dǎo)致錯(cuò)過收集數(shù)據(jù)的機(jī)會(huì)。然而, 對(duì)于開發(fā)者來說保證在文檔卸載期間發(fā)送數(shù)據(jù)一直是一個(gè)困難。因?yàn)橛脩舸硗ǔ?huì)忽略在卸載事件處理器中產(chǎn)生的異步 XMLHttpRequest 。

使用 sendBeacon() 方法,將會(huì)使用戶代理在有機(jī)會(huì)時(shí)異步地向服務(wù)器發(fā)送數(shù)據(jù),同時(shí)不會(huì)延遲頁面的卸載或影響下一導(dǎo)航的載入性能。這就解決了提交分析數(shù)據(jù)時(shí)的所有的問題:使它可靠,異步并且不會(huì)影響下一頁面的加載。此外,代碼實(shí)際上還要比其他技術(shù)簡(jiǎn)單!

注意:該方法在IE和safari沒有實(shí)現(xiàn)

使用場(chǎng)景:發(fā)送崩潰報(bào)告

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/51656.html

相關(guān)文章

  • 常用很有妙用事件方法

    摘要:過早的發(fā)送數(shù)據(jù)可能導(dǎo)致錯(cuò)過收集數(shù)據(jù)的機(jī)會(huì)。因?yàn)橛脩舸硗ǔ?huì)忽略在卸載事件處理器中產(chǎn)生的異步。使用方法,將會(huì)使用戶代理在有機(jī)會(huì)時(shí)異步地向服務(wù)器發(fā)送數(shù)據(jù),同時(shí)不會(huì)延遲頁面的卸載或影響下一導(dǎo)航的載入性能。 1 visibilitychange事件 觸發(fā)條件:瀏覽器標(biāo)簽頁被隱藏或顯示的時(shí)候會(huì)觸發(fā)visibilitychange事件. 使用場(chǎng)景:當(dāng)標(biāo)簽頁顯示或者隱藏時(shí),觸發(fā)一些業(yè)務(wù)邏輯 do...

    gaara 評(píng)論0 收藏0
  • 如何給列表降維?sum()函數(shù)妙用

    摘要:上個(gè)月,學(xué)習(xí)群里的同學(xué)問了個(gè)題目,大意可理解為列表降維,例子如下想得到結(jié)果原始數(shù)據(jù)是一個(gè)二維列表,目的是獲取該列表中所有元素的具體值。不經(jīng)意間,函數(shù)的注意事項(xiàng),竟把其它的進(jìn)階內(nèi)容都聯(lián)系起來了。小小的函數(shù),竟成為學(xué)習(xí)之路上的一個(gè)樞紐。 上個(gè)月,學(xué)習(xí)群里的 S 同學(xué)問了個(gè)題目,大意可理解為列表降維 ,例子如下: oldlist = [[1, 2, 3], [4, 5]] # 想得到結(jié)果:...

    Channe 評(píng)論0 收藏0
  • 計(jì)算機(jī)視覺中深度學(xué)習(xí):技術(shù)、市場(chǎng)和5個(gè)你想未來

    摘要:接下來,介紹了使用深度學(xué)習(xí)的計(jì)算機(jī)視覺系統(tǒng)在農(nóng)業(yè)零售業(yè)服裝量身定制廣告制造等產(chǎn)業(yè)中的應(yīng)用和趨勢(shì),以及在這些產(chǎn)業(yè)中值得關(guān)注的企業(yè)。 嵌入式視覺聯(lián)盟主編Brian Dipert今天發(fā)布博文,介紹了2016年嵌入式視覺峰會(huì)(Embedded Vision Summit)中有關(guān)深度學(xué)習(xí)的內(nèi)容:谷歌工程師Pete Warden介紹如何利用TensorFlow框架,開發(fā)為Google Translate...

    baukh789 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<