jquery $.when 和同步请求问题

jquery $.when and Simultaneous request issue

我写了第一个 $.when 例程,但没有按预期工作:

     $(document).ready(function () 
     {
      var   UserUrl = 'API/StartGetUser.asp';
      var   StoreUrl = 'API/StartGetStore.asp';
      var   FeedbackUrl='API/StartGetFeed.asp';
      var   ItemsUrl='API/StartGetSellers.asp';
    $.when(
        $.get(UserDetailsUrl),
        $.get(StoreCategoryUrl),
        $.get(FeedbackUrl),
        $.get(ItemsUrl)
    ).then(function(user,store,feed,items) {
        //$.get(mailUrl)
        alert(user+' '+store+' '+feed+' '+items);
    }).fail(function(err) {
      alert(err);
    });

它有效,但我原以为 4 个 get 会同时触发,而我发现在前一个完成后执行一个... 因为是

$.get

肯定是异步的..

有什么问题吗? 我应该检查什么?

顺便说一句,服务器端是经典的 asp 并且请求在同一台机器上,从 url 可以看出。

感谢任何提示

这四个请求是一个接一个发起的,因为Javascript是顺序执行代码的。 Javascript 中没有实际的并行执行(它是单线程的 - 除了此处未涉及的 webWorkers 之外)。

这里会发生的是所有四个请求将同时 "in process"。响应返回的确切时间取决于服务器的响应能力。有些服务器一次只会处理一个请求,并且会导致响应按顺序返回,即使它们都是一次启动的。其他服务器将以时间片方式(甚至使用多个处理器)处理它们,以便所有响应几乎同时完成。

您可以在操作前打开 Chrome 调试器中的网络选项卡,然后查看它显示的时间轨迹,以验证发送请求和接收响应的时间。