多个ajax到c#webmethod调用

时间:2014-02-13 11:43:18

标签: c# jquery ajax asmx webmethod

我有一个jquery ajax调用c#asmx web方法,它进行一些处理,并在内部调用更多api的\ DB操作等等大约需要20-30秒

WEB METHOD

[WebMethod]
public void dummy()
{
    File.Create(@"C:\test\test" + DateTime.Now.Millisecond.ToString() + ".txt");
    System.Threading.Thread.Sleep(60000);
}

AJAX CALL

$.ajax(
     {
         url:Service.asmx/dummy",
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         type: "POST",
         success: function (strData) {
             alert('done');
         }
    });

ajax调用是在一个被触发2次的循环中,但是web方法只被调用一次,所以我尝试async: false,然后web方法被击中两次,但是在延迟60秒之后。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在后面的代码中删除System.Threading.Thread.Sleep(60000)的延迟,并在收到服务器端的响应后发送第二个ajax调用。

$.ajax(
     {
         url:Service.asmx/dummy",
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         type: "POST",
         success: function (strData) {
             alert('done');
             //send second call here
         }
         error:  function (jqXHR, textStatus, errorThrown) {
             //send second call here if required.
         }
    });

如果同时呼叫没有任何同步问题,则可以同时删除延迟并发送多个呼叫。