Асинхронный пост завершается неудачно с первой попытки, работает со второй - PullRequest
0 голосов
/ 18 мая 2018

Я бы хотел получить значение из базы данных, но похоже, что моя функция ajax_update2() читает предыдущие данные, а не текущие данные.Я установил async:false в runMon2() перед вызовом ajax_update2().Это работает только во второй раз.

Примечание: я использую IE11.

function runMon2() {
   $("#btnStop").show();
   $("#btnStart").hide();
   $("#msgz").html("");

   $.ajax({
      type: "POST",
      url: "stage2.aspx/s3_monte_carlo_run_thread",
      data: '{id: "' + <%= id%> + '",no_cycles:"' + $("#cycles").val() + '",covSmys:"' + $("#covSmys").val() + '",covT:"' + $("#covT").val() + '",covL:"' + $("#covL").val() + '",covD:"' + $("#covD").val() + '", D:"' + <%= D%> + '",L: "' + <%= L%> + '",T: "' + <%= T%> + '",Pa: "' + <%= Pa%> + '",UTS: "' + <%= UTS%> + '",SMYS: "' + <%= SMYS%> + '",assess_type:"' + $("#assess_type").val() + '",year: "' + <%=year%> + '" }',
      dataType: 'json',
      async: false,
      contentType: "application/json; charset=utf-8",
      success: function (data) {
            successmessage = 'RunMon2 Successfully enter data';
            $("#progressbar").show();
            $("#msgz").show();
            setTimeout(ajax_update2(), 50000);
              },
       fail: function (data) {
            successmessage = 'RunMon2 Operation Failed';
            console.log(successmessage);
              },
          });

      }

function ajax_update2() {
    $("#btnStop").show();
    $("#btnStart").hide();
    console.log("ajax_update2");

    $.ajax({
        type: "POST",
        url: "stage2.aspx/s3_monte_carlo_refresh",
        data: '{id: "' + <%= id%> + '"}',
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
    })
        .done(function (data) {
        data = $.trim(data.d);
        console.log(data)
        if (data == "") {
            $("#msgz").hide();
            $("#btnStart").show();
            $("#btnStop").hide();
            console.log("data empty");
            return;
        }
        var dd = data.split("!");
        var temp = data.d;
        if (parseFloat(dd[0]) == 100) {
            $("#progressbar").hide();
            $("#msgz").html(dd[1]);
            $("#btnStop").hide();
            $("#btnStart").show();
            console.log("data complete");
            return;
        }

        $("#progressbar").progressbar("option", "value", parseFloat(dd[0]));
        $("#msgz").html(dd[1]);
        setTimeout("ajax_update2()",5000);
        successmessage = 'Successfully enter ajax_update2';
        console.log(successmessage);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...