情况:
1、事件中有足够的条件可以发送。
微信安卓端: 借助事件unload;
微信iso: 借助事件pagehide;
事件中使用浏览器的接口:
function sendAjax(){
window.navigator.sendBeacon(url,data);
}
window.addEventListener("unload/pagehide",function(){
sendAjax();
});
pc.或者移动端;
借助 onbeforeunload;
functionsendMes(){
const xht= new XMLHttpRequest();
xht.open("GET",url,true);
xht.send(data);
}
window.onbeforeunload = function(){
sendMes();
return " leave Now?"
}
2、刷新。
同样借助事件,当事件中没有足够的条件发送请求。那就使用sessionstorage保存需要发送的参数。当加载完成之后再发送。
function saveAjax(){
sessionStorage.data = JSON.stringify({});
}
window.addEventListener("unload/pagehide",function(){
saveAjx();
});
windwo.onload = function(){
if(sessionStorage.datat){
sendAjax();
}
}