如何使ajax请求异步,比如两个请求?

时间:2015-02-05 03:21:17

标签: c# jquery ajax

我已在此地址how to make ajax request async?

中发布了该问题

,但我没有收到好的答案。

在回答此问题之前,您可以查看上面的网址,查看其他人提供的答案。

我希望有人可以解决我的问题。

我想让一些ajax请求异步。比如两个Ajax,第一个Ajax不需要完成,第二个请求可以发生

$.ajax({
            url: "urlone",
            async: true, 
              complete: function () {
                console.log("1");
            }, 
            type: "post",
           dataType: "json"
        });


 console.log("2");

 $.ajax({
            url: "urltwo",
            async: true,
              complete: function () {
                console.log("3");
            },
             type: "post", 
             dataType: "json"
});

我想让一些ajax请求异步。比如两个Ajax,第一个Ajax不需要完成,第二个请求可以发生,

在urlone背景中,我让线程睡眠5秒,并在urltwo背景中立即返回json。

我写这个,但没有效果,我想控制台打印2 3 1

但实际上,它打印2 1 3

这显示第二个请求只能在第一个请求返回后触发

如何解决这个问题??

2月6日补充:感谢您的热情回答。我的服务器端是C#,而我写的是urlone

JsonModel  xx=new JsonModel(){.......};   //as you known
System.Threading.Thread.Sleep(5000);
return Json(xx);
在urltwo中我写了

JsonModel  xx=new JsonModel(){.......};   //as you known
return Json(xx);

那就是它!

我想要这个因为我在urlone中执行了一个非常耗时的操作,当我从urlone回来时,前面已经失去了响应,即使我设置了一个非常大的ajax等待时间。所以我想查询是否操作在urlone中,请求urltwo完成,urltwo设计用于查询数据库完成字段标志,用于urlone中的操作。这是我的想法。

但今天,我发现了一个新问题。当我长时间睡眠后台线程,然后将json数据返回前面,前面可以响应并完成一些js功能,但是当我在urlone背景中执行非常耗时的操作时,当它回到前面时,前面没有反应。一定有一些我没有意识到的问题,所以

1 个答案:

答案 0 :(得分:-1)

A中的AJAX代表异步。所有请求本质上都是异步的。