jquery的多个setinterval问题

时间:2014-01-28 09:24:25

标签: jquery

我正在为以下代码执行setInterval。 在按钮上单击我必须逐一执行以下

// show VM started

    vmstart = setInterval(function () {
      $.get('/getVMstatus', function (data) {
        if (data != "") {
          clearInterval(vmstart);
          $("#vmstart").show();
          $("#vmstart").html(data[0].ip)+".....</br>";
          $.post('/deleteReport', function (data) {});
        }
      });
    }, 5000);


// get VM IP Address
    inter = setInterval(function () {
      $.get('/getVm', function (data) {
        if (data != "") {
          clearInterval(inter);
          $("#vmipdiv").show();
          $("#vmipdiv").html("VM IP : " + data[0].ip);
          $.post('/deleteReport', function (data) {});
        }
      });
    }, 6000);

// Test start
teststart = setInterval(function () {
      $.get('/geteststatus', function (data) {
        if (data != "") {
          clearInterval(teststart);
          $("#teststart").show();
          $("#teststart").html("Test Starting in "+data[0].ip+"</br>");
          $.post('/deleteReport', function (data) {});
        }
      });
    }, 11000);

按钮点击需要的是

在获得此数据通话/getVMstatus之后,只有在将数据填充到html调用/getVM之后才能首先调用/getteststatus

2 个答案:

答案 0 :(得分:1)

您可以在另一个

中调用一个函数
$.get('/getVMstatus', function (data) {
    if (data != "") {
        $("#vmstart").show();
        $("#vmstart").html(data[0].ip)+".....</br>";
        $.post('/deleteReport', function (data) {
            $.get('/getVm', function (data) {
                if (data != "") {
                    $("#vmipdiv").show();
                    $("#vmipdiv").html("VM IP : " + data[0].ip);
                    $.post('/deleteReport', function (data) {
                        $.get('/geteststatus', function (data) {
                            if (data != "") {
                                $("#teststart").show();
                                $("#teststart").html("Test Starting in "+data[0].ip+"</br>");
                                $.post('/deleteReport', function (data) {});
                            }
                        });
                    });
                }
            });
        });
    }
});

答案 1 :(得分:1)

尝试完成回调

    / show VM started
          $.get('/getVMstatus', function (data) {
            if (data != "") {

              $("#vmstart").show();
              $("#vmstart").html(data[0].ip)+".....</br>";
              $.post('/deleteReport', function (data) {});
            }
          }).done(function(){$.get('/getVm', function (data) {
            if (data != "") {

              $("#vmipdiv").show();
              $("#vmipdiv").html("VM IP : " + data[0].ip);
              $.post('/deleteReport', function (data) {});
            }
          }).done(function(){
$.get('/geteststatus', function (data) {
            if (data != "") {

              $("#teststart").show();
              $("#teststart").html("Test Starting in "+data[0].ip+"</br>");
              $.post('/deleteReport', function (data) {});
            }
          });
});
});