HTML:始终触发beforeunload事件

时间:2017-01-26 16:19:58

标签: javascript html

要更新网站,我需要定期跟踪数据库中的状态字段。为此,我设置了这样的计时器;

var id = window.setInterval("getState()", 1000);

getState()每秒通过AJAX调用数据库并返回特定状态字段的值。浏览器窗口打开时,计时器正在运行。当用户关闭其浏览器窗口时,我需要清除我使用此代码执行的计时器:

window.addEventListener('beforeunload', function(event) {
  setState(0);
  clearInterval(id);
});

现在我的问题是:这个event是否始终被触发?这是现代浏览器中的可靠方式还是有例外?

编辑:

我在事件setState()上添加beforeunload以在窗口关闭时更新数据库。我以前忘了这个,对不起......

1 个答案:

答案 0 :(得分:0)

  1. 如果用户关闭浏览器窗口,将始终触发beforeunload事件。
  2. 如果设备正常重启,将始终触发beforeunload事件。
  3. 如果设备断电(电池拉动,拔出插头),beforeunload事件 将被触发
  4. 附注:如果浏览器窗口关闭,带有AJAX调用的计时器将自动停止。