location.reload(true)崩溃浏览器选项卡

时间:2016-05-18 14:46:46

标签: javascript php timeout

我有一个使用PHP会话的网站,如果用户的会话仍然有效,我已经实施了以下JS代码来检查每60秒:

var timeoutInterval = 60000; // 1 minute

function checkTimeout() {
  var timeoutWorker = new Worker("/include/cbpull.js");

  timeoutWorker.postMessage('/cloud/timeout.php');

  timeoutWorker.onmessage = function (result) {
    if (result.data['result'] === false) {
      location.reload(true);
    }
  }
}

function sessionTimeout() {
  checkTimeout();
  setInterval(checkTimeout, timeoutInterval);
}

sessionTimeout();

但是,当会话超时并且调用location.reload(true)时,此代码会崩溃Google Chrome中的标签。我该怎么做才能使代码正常工作?

1 个答案:

答案 0 :(得分:0)

以下可能会发生什么?在会话超时时,您重新加载页面,该页面立即再次触发sessionTimeout,再次发现会话(仍然)已过期,这会重新加载页面...