我有一个使用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中的选项卡崩溃。我该怎么做才能使代码正常工作?
可能发生了以下情况?在会话超时时,您重新加载页面,这会立即再次触发sessionTimeout,它会再次发现会话(仍然)过期,从而重新加载页面。。。