Jquery Cakephp:多个异步Ajax调用未按预期工作

Jquery Cakephp:多个异步Ajax调用未按预期工作,jquery,ajax,cakephp,asynchronous,Jquery,Ajax,Cakephp,Asynchronous,我有两个连续的异步Ajax调用,如下所示,当我执行该调用时,我希望如果“第一次完成”比call2(id=2)花费的时间少,它将被打印;反之亦然,如果“第二次完成”比call1(id=1)花费的时间少,它将被打印。 但是,我发现第二次呼叫总是等待第一次呼叫完成。将其与异步混淆。请帮忙 $(function(){ jQuery.ajax({ url: 'Home/getItem', data : { id : 1 },

我有两个连续的异步Ajax调用,如下所示,当我执行该调用时,我希望如果“第一次完成”比call2(id=2)花费的时间少,它将被打印;反之亦然,如果“第二次完成”比call1(id=1)花费的时间少,它将被打印。 但是,我发现第二次呼叫总是等待第一次呼叫完成。将其与异步混淆。请帮忙

    $(function(){
       jQuery.ajax({ 
            url: 'Home/getItem', 
            data : { id : 1 }, 
            async:true,
            success: function(){ console.log('1st complete'); }
        }),
        jQuery.ajax({ 
            url: 'Home/getItem', 
            data : { id : 2 }, 
            async:true,
            success: function(){ console.log('2nd complete'); }
        })
});

当我用核心php检查相同的函数时,它会返回预期的结果。

您看到这样的输出是因为;几乎在每种服务器端技术中都有一个会话管理。现在假设您的
getItem
函数/方法执行一些工作并更新会话对象。所以默认情况下,服务器总是阻止同一用户对同一服务器端方法的
并发
调用。如果第一个请求正在进行,那么第二个请求将被推送到队列中。一旦第一个请求完成;将执行挂起的请求。这样,由第一个请求修改的会话状态将可用于第二个请求,依此类推

在.Net技术中,有一些注释可以使控制器/方法会话不被察觉,从而可以进行并发ajax调用。通过这些注释,我们声明相关的控制器/方法不处理会话状态,因此可以并发调用

您可以在下面的问题中了解更多信息:


同样,PHP中也必须有一些东西。尝试搜索它,你会得到线索。

@Alex你似乎对
async:true
有误解,也许这与此有关:也值得一读:@Alex,没有两个请求同时启动,但响应有序。。你在后端使用哪种技术?它是.Net吗?