不同时间有多个ajax请求

时间:2013-10-03 12:59:13

标签: jquery ajax timer

我发现了这个Jquery/Ajax call with timer但是对于我的情况,我想我无能为力。

我有超过3个面板用ajax更新,这个数字将继续增长。如果该请求是同时进行的,我可以使用http://api.jquery.com/jQuery.when/来解决,但是这个面板有不同的定时器要执行......

第一个每10秒。 第二个每3秒。 第三个每30秒。

它会在每一个时刻到达同时执行......但是这将如何继续增长......

我认为在某种程度上创建一个应该每1秒使用http://api.jquery.com/jQuery.when/执行一次的堆栈。

我相信实现这个的另一种选择......

有人会得到不同的解决方案吗?

/**
 * 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);
};

@SOLVED

我已经使用数组堆栈解决了它。

0 个答案:

没有答案