0

タイマーを使用したこの Jquery/Ajax 呼び出しを見つけましたが、私の場合は仕方がないと思います。

ajaxで更新するパネルが3つ以上あり、この数は増え続けます。そのリクエストが同時に行われた場合、http://api.jquery.com/jQuery.when/を使用して解決できますが、このパネルには実行するタイマーが異なります...

最初は10秒ごと。3秒ごとの秒。30 秒ごとに 3 回目。

すべてが同時に実行される瞬間に到達します...しかし、これがどのように成長し続けるか...

http://api.jquery.com/jQuery.when/を使用して 1 秒ごとに実行する必要があるスタックを作成する 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);
};

@解決済み

配列スタックを使用して解決しました。

4

0 に答える 0