2017-02-14 7 views
2

Jquery ajaxを使用してデータの大部分を1つずつ更新しようとしています。すべてのことがうまく始まりますが、5分後には、 のようなエラーが表示されます。 AJAXの誤差関数のjquery ajax insideループreturn statusTextエラー、IEの一定時間後のステータス0

network error

エラー:.

enter image description here

MainDataはJSONオブジェクトの配列であり、JSONオブジェクトの数3000の周り含有あります。私はasp.netのWebフォーム

+0

上記の質問に画像を追加してください。 –

+0

申し訳ありませんが、イメージを追加するのに十分な評判がありませんでした。画像は表示されませんでした。今それはon..plzチェックしています –

答えて

0

のWebサービスを使用しています

function DoPost() 
    { 
     $.each(MainData, function (key, value) { 
      var mainCode = value.MainCode; 
      var companyCode = value.CompanyCode; 
      $.ajax({ 
       url: "Allotment.asmx/DoAllotment", 
       data: "{MainCode:'" + mainCode + "', sNoOfAllotment:'" + noOfAllot + "',CompanyCode:'" + companyCode + "'}", 
       dataType: 'text', 
       contentType: "application/json; charset=utf-8", 
       type: "Post", 
       success: function (res){ 
        Progress(res); // this funtion will show progress of update. 
       }, 
       error: function (res) { 
        console.log(res); 
       } 
      }); 
     }); 
    } 

問題は、同じURLへの同時接続数の最大値である可能性があります。現在$.ajax()が完了すると、次の$.ajax()コールをスケジュールできます。

も参照してくださいmultiple, sequential fetch() Promise

function DoPost(value) { 
    var mainCode = value.MainCode; 
    var companyCode = value.CompanyCode; 
    return $.ajax({ 
    url: "Allotment.asmx/DoAllotment", 
    data: "{MainCode:'" + mainCode + "', sNoOfAllotment:'" 
      + noOfAllot + "',CompanyCode:'" + companyCode + "'}", 
    dataType: 'text', 
    contentType: "application/json; charset=utf-8", 
    type: "POST", 
    success: function(res) { 
     Progress(res); // this funtion will show progress of update. 
    }, 
    error: function(res) { 
     console.log(res); 
    } 
    }); 
} 

var copy = MainData.slice(0); 
var res = (function re(value) { 
    return DoPost(value).then(function() { 
    return copy.length ? re(copy.shift()) : "complete" 
    }) 
})(copy.shift()); 

res.then(function(complete) { 
    console.log(complete) 
}, function(err, textStatus, jqxhr) { 
    console.log(err) 
}); 
+0

javascriptの約束はまったく新しいです。あなたはもう少し説明してください、このコードがどのように働くか? –

+0

元の配列を 'copy'に保存する必要がある場合は、元の配列のコピーを作成し、' $ .ajax() '要求を連続して呼び出し、前の要求が完了したときに次の要求を行います。あなたは@TariqBによる問題の説明を与えられて、 'MainData'を' POST'リクエストでポストすることもできます。 – guest271314

0

エラー0x2ee2は、タイムアウトエラーのIEの表現です。このエラーが発生すると、同じクライアントから送信された多数の要求のために、サーバーが要求に応答しなくなったことが示されます。これはクライアントからのDOS攻撃を避けるサーバです。

適切な方法は、コードを最適化して、使用可能な最大帯域幅を利用してサーバーへの要求数を最小限に抑えることです。

関連する問題