不常用却很有妙用的事件及方法
1 visibilitychange事件触发条件: 使用场景: document.addEventListener("visibilitychange",function() { console.log( document.visibilityState ); }); 2 storage事件触发条件: 使用场景: // AB页面同源 // 在A 页面 window.addEventListener('storage',(e) => {console.log(e)}) // 在B 页面,向120打个电话 localStorage.setItem('makeCall','120') // 然后可以在A页面间有输出,可以看出A页面 收到了B页面的通知 ...key: "makeCall",oldValue: "119",newValue: "120",... 3 beforeunload事件触发条件: 使用场景: window.addEventListener("beforeunload",function (e) { var confirmationMessage = "o/"; e.returnValue = confirmationMessage; // Gecko,Trident,Chrome 34+ return confirmationMessage; // Gecko,WebKit,Chrome <34 }); 4 navigator.sendBeacon这个方法主要用于满足 统计和诊断代码 的需要,这些代码通常尝试在卸载(unload)文档之前向web服务器发送数据。过早的发送数据可能导致错过收集数据的机会。然而, 对于开发者来说保证在文档卸载期间发送数据一直是一个困难。因为用户代理通常会忽略在卸载事件处理器中产生的异步 XMLHttpRequest 。 使用 sendBeacon() 方法,将会使用户代理在有机会时异步地向服务器发送数据,同时不会延迟页面的卸载或影响下一导航的载入性能。这就解决了提交分析数据时的所有的问题:使它可靠,异步并且不会影响下一页面的加载。此外,代码实际上还要比其他技术简单!
使用场景: window.addEventListener('unload',logData,false); function logData() { navigator.sendBeacon("/log",analyticsData); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |