Calling ajax with Jquery every X seconds

1

I'm trying to make a call Ajax once the page loads and one every 2 minutes.

The 1st and 2nd works but do not have 3rd call and so on.

      <script type="text/javascript">

            function CarregarJSON() {
                $.ajax({
                    type: "get",
                    url: "/Extranet/Monitor/DadosServerIISJson",
                    success: function (data) {
                    CPUIIS = data.CPU_IIS;
                    $("#CPUIIS").html(CPUIIS);
    //remoção de código para facilitar visualização

                    }

                });

                $.ajax({
                    type: "get",
                    url: "/Extranet/Monitor/DadosServerSQLJson",
                    success: function (data) {
       //remoção de código para facilitar visualização
                    }

                });
            }



            $(document).ready(function () {
                CarregarJSON();

                timeout = setTimeout(function () {
                    CarregarJSON()
                }, 12000);

            })
        </script>
    
asked by anonymous 19.04.2016 / 19:51

1 answer

2

Insert the new Ajax call into the callback. So ensure that the next request is only sent after the second ajax has arrived and also guarantees that this is the right trigger, that is, whenever the ajax finish calls the function again.

function CarregarJSON() {
    var recebidas = 0;
    $.ajax({
        type: "get",
        url: "/Extranet/Monitor/DadosServerIISJson",
        success: function(data) {
            if (recebidas > 0) setTimeout(CarregarJSON, 120000);
            recebidas++;
            CPUIIS = data.CPU_IIS;
            $("#CPUIIS").html(CPUIIS);
            //remoção de código para facilitar visualização
        }
    });

    $.ajax({
        type: "get",
        url: "/Extranet/Monitor/DadosServerSQLJson",
        success: function(data) {
            if (recebidas > 0) setTimeout(CarregarJSON, 120000);
            recebidas++;
            //remoção de código para facilitar visualização
        }
    });
}

$(document).ready(CarregarJSON);

You can also optionally join the call to CarregarJSON (no timer, or shorter than 2 minutes) in case of an error so call the ajax again.

    
19.04.2016 / 19:57