我正在使用一些非常旧的代码,以下代码用于监视会话状态。如果用户处于非活动状态 X 分钟(由 check_session.php 确定),他们将被注销。
服务器端的东西工作正常。实际上,现有的 javascript 似乎也可以正常工作,但看起来需要清理。
这是现有的javascript:
function checkSessionStatus()
{
session_http.open('GET', '/check_session.php', true);
session_http.onreadystatechange = handleSessionHttpResponse;
session_http.send(null);
}
function handleSessionHttpResponse()
{
if (session_http.readyState == 4)
{
results = session_http.responseText;
if (results == 'inactive')
{
window.location='/logout.php';
document.getElementById('session_divbox').innerHTML = results;
}
}
}
function get_session_HTTPObject()
{
var xml_session_http;
if (!xml_session_http && typeof XMLHttpRequest != 'undefined')
{
try
{
xml_session_http = new XMLHttpRequest();
}
catch (e)
{
xml_session_http = false;
}
}
return xml_session_http;
}
var session_http = get_session_HTTPObject();
function init_page_header()
{
window.setInterval( 'checkSessionStatus();', 30000);
}
对于它正在做的事情来说,这似乎非常漫长。
我仍在学习 jquery,并且能够执行一些基本的 ajax 调用,比如这个,它将返回值放在一个 div 中:
$(document).ready(function()
{
$('#users_online').load('/show_users_online.php');
var refreshId = setInterval(function()
{
$('#users_online').load('/show_users_online.php');
}, 2000);
$.ajaxSetup({ cache: false });
});
第一段代码的问题是它返回一个“inactive”值,然后由客户端执行(窗口重定向)。
是否有可能在 Jquery 中做到这一点而无需结束数十行代码?我可能已经知道如何做到这一点,并且没有只见树木不见森林——这里的一些指导值得赞赏。