2015-02-05 103 views
0

我在这个地址发布了问题how to make ajax request async?如何让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中执行非常耗时的操作时背景,当它回到前面时,前面没有反应。肯定有一些问题我还没有意识到,所以

+0

这看起来完全一样,你以前的帖子...请注意,这篇文章没有解决您对使用什么服务器技术的答案的担忧... –

回答

-1

AJAX代表异步。所有请求都是异步的。