jAn*_*ndy 19 html javascript w3c dom specifications
最近,我迫切要求给我的服务器一个通知,我的webapp的特定页面即将关闭.我认为," 易玩 " beforeunload很长一段时间.HTML5的"东西",甚至刷新了规范(这是我的想法......)这件事,因为我们有选择的方式return一个字符串值从beforeunload事件处理程序之类的东西,这给了用户拦截的选项.
然而,事实证明,没有任何" 官方 "规范可用,它描述了beforeunload截至此日期的行为.我发现的唯一官方文件是WHATWG,当然这只是W3C的提案.
到现在为止还挺好.我们能够在事件处理程序中创建同步的XHR请求beforeunload."大多数"浏览器为该请求提供大约1-2秒的完成时间,之后它就会被杀死.标准异步请求立即被终止.话虽如此,我甚至无法从"知道这个"的地方说出来,现在看起来像八卦和口口相传.即便如此,它在Firefox + Chrome中运行,我们不能依赖它,可以吗?
关于WHATWG有没有正在进行的讨论/提案beforeunload?
关于我可能没有找到的事件的任何其他官方资源?
对我来说最重要的是,我们在那里通过sync-XHR发送数据有多可靠?
And*_*y E 18
看一下navigator.sendBeacon(),即使页面正在卸载,也可以让您可靠地将数据发送到服务器.它目前处于草案规范中,并得到Firefox 31,Chrome 39(37后面的旗帜)的支持,落后于Opera 24的旗帜.
您可以使用以下内容对其进行"排序"填充:
navigator.sendBeacon = navigator.sendBeacon || function (url, data) {
var xhr = new XMLHttpRequest();
// Need to send synchronously to have the best chance of data getting
// through to the server
xhr.open('POST', url, false);
xhr.send(data);
};
Run Code Online (Sandbox Code Playgroud)