私はかなり古いコードで作業しており、セッションステータスを監視するために以下が使用されています。ユーザーが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でこれを行うことは可能ですか?私はすでにこれを行う方法を知っているかもしれません、そして木のために森を見ていません-ここでいくつかのガイダンスはありがたいです。