我发现这个带有计时器的 Jquery/Ajax 调用,但就我而言,我想我无能为力。
我有超过 3 个面板要使用 ajax 进行更新,而且这个数字将继续增长。如果该请求是同时发出的,我可以使用http://api.jquery.com/jQuery.when/解决,但是这个面板有不同的计时器要执行......
第一次每 10 秒。每 3 秒第二次。每 30 秒第三次。
它会在每一个同时执行的时刻达到……但是这将如何继续增长……
我认为以一种方式创建一个应该使用http://api.jquery.com/jQuery.when/每 1 秒执行一次的堆栈。
我相信实现这个的另一种选择......
有人得到不同的解决方案?
/**
* Method to display method information.
*/
function updateServerStatus()
{
/**
* Performs ajax request to return the json.
* NOTES: 'server.load.php' send a json object about server status using false to 'offline' and 'true' to 'online' status.
*/
$.ajax({
'url' : 'server.load.php',
'data' : 'json',
success : function(objServer)
{
/**
* Removes style showing color about status.
*/
$('#map-status, #char-status, #login-status').removeClass('label-danger').removeClass('label-success');
/**
* Check if map-server is offline.
*/
if(objServer.map == false)
{
$('#map-status').addClass('label-danger').html('Offline');
}
else
{
$('#map-status').addClass('label-success').html('Online');
}
/**
* Check if char-server is offline.
*/
if(objServer.char == false)
{
$('#char-status').addClass('label-danger').html('Offline');
}
else
{
$('#char-status').addClass('label-success').html('Online');
}
/**
* Check if char-server is offline.
*/
if(objServer.login == false)
{
$('#login-status').addClass('label-danger').html('Offline');
}
else
{
$('#login-status').addClass('label-success').html('Online');
}
}
});
/**
* Get into loop calling this after 10sec to keep updated.
*/
setTimeout(updateServerStatus, 10000);
};
@解决了
我已经使用数组堆栈解决了它。