Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步post在第一次尝试时失败,在第二次尝试时工作_Javascript_Ajax_Vb.net_Asynchronous - Fatal编程技术网

Javascript 异步post在第一次尝试时失败,在第二次尝试时工作

Javascript 异步post在第一次尝试时失败,在第二次尝试时工作,javascript,ajax,vb.net,asynchronous,Javascript,Ajax,Vb.net,Asynchronous,我想从数据库中检索一个值,但似乎我的ajax\u update2()函数读取的是以前的数据,而不是当前数据。在调用ajax\u update2()之前,我在runMon2()中设置了async:false。它只在第二次起作用 注意:我使用的是IE11 function runMon2() { $("#btnStop").show(); $("#btnStart").hide(); $("#msgz").html(""); $.ajax({ type: "PO

我想从数据库中检索一个值,但似乎我的
ajax\u update2()
函数读取的是以前的数据,而不是当前数据。在调用
ajax\u update2()
之前,我在
runMon2()中设置了
async:false
。它只在第二次起作用

注意:我使用的是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);
    });
}
函数runMon2(){
$(“#btnStop”).show();
$(“#btnStart”).hide();
$(“#msgz”).html(“”);
$.ajax({
类型:“POST”,
url:“stage2.aspx/s3\u monte\u carlo\u run\u thread”,
数据:{id:“++””,没有任何周期。周期:“““+美元”(即“周期”的周期)。val()”,Covsmy:“+美元”(即“共价运动”(即“共价运动”)”,Covs:“{{id:“{id:”””,数据::“{id:””,无任何周期:“,无周期:”,无任何周期:”,无政府数据:”,无政府数据:”,无政府数据:“““,”,有可能:”,有id:”,有可能:”,有可能:”,有可能(以以以以以以以以以(以以以以(以(以(以以(以以““((([以“[以(“(“(“将将将将将将将将将将将将将将将这些这些(将将将将将将将将将将以以以以(将其作为作为(“(“(“(“(“(“将将将将将将将将将将#评估类型“).val()+”,年份:“++”}',
数据类型:“json”,
async:false,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
successmessage='RunMon2成功输入数据';
$(“#progressbar”).show();
$(“#msgz”).show();
setTimeout(ajax_update2(),50000);
},
失败:功能(数据){
successmessage='RunMon2操作失败';
console.log(成功消息);
},
});
}
函数ajax_update2(){
$(“#btnStop”).show();
$(“#btnStart”).hide();
log(“ajax_update2”);
$.ajax({
类型:“POST”,
url:“stage2.aspx/s3\u monte\u carlo\u refresh”,
数据:“{id:”++“}”,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
})
.完成(功能(数据){
数据=$.trim(数据.d);
console.log(数据)
如果(数据==“”){
$(“#msgz”).hide();
$(“#btnStart”).show();
$(“#btnStop”).hide();
console.log(“数据为空”);
返回;
}
var dd=数据分割(“!”);
var temp=数据d;
if(parseFloat(dd[0])==100){
$(“#progressbar”).hide();
$(“#msgz”).html(dd[1]);
$(“#btnStop”).hide();
$(“#btnStart”).show();
控制台日志(“数据完整”);
返回;
}
$(“#progressbar”).progressbar(“选项”,“值”,parseFloat(dd[0]);
$(“#msgz”).html(dd[1]);
setTimeout(“ajax_update2()”,5000);
successmessage='成功输入ajax_update2';
console.log(成功消息);
});
}

如果您确实希望第二个AJAX调用是同步的,那么您也必须为该调用设置
async=false
。请注意,此属性已弃用。我看不出为什么要使用async=false。您的代码应该与它一起工作removedHi Teemu,谢谢您的建议。我试图在ajax_update2()函数中设置async=false。但还是一样的问题。它将返回旧数据。嗨,mplungjan,我已经尝试删除“async=false”,但仍然存在相同的问题。它将在第一次检索旧数据。但在第二次和以后,它将返回正确的值。还是很困惑啊。。我误解了这个问题。。。同步调用并不意味着响应的数据将自动更新。相反,您需要通过设置相应的头来禁用缓存。