同时ajax调用会导致随机错误

我有以下内容:

myfunc = function(url, callback, etc...) { $.ajax({ type: 'GET', url: url, etc.}); } function changeDivThis(data) { $('#this').html(data); } function changeDivThat(data) { $('#that').html(data); } 

我连续两次调用ajax get函数:

 myfunc('/getData?mode=THIS', changeDivThis, etc...); myfunc('/getData?mode=THAT', changeDivThat, etc...); 

结果是一些重要的时间,比如20%的时间,id =’this’的div将填充由THAT调用返回的数据。 当我查看应用服务器日志时,我会看到一些意想不到的东西,比如只有一个请求。

当我在Firebug中运行时,错误永远不会发生,一切都很好。 我注意到Firebug大大减慢了浏览器操作,所以我假设这是原因的线索,与并发有关,例如第二次调用在某些场合首先从服务器返回,浏览器认为这是响应到第一个电话。 正确?

因此,在我对AJAX的有限经验中,我认为它支持在服务器上抛出几个并发请求,然后按照它们返回的顺序整理响应。 这个问题让我相信AJAX(或我的Firefox版本= 3.6.24 / jQuery = 1.4.4)会看到同一个url的两个请求相同,即使它们都有不同的参数。

我在Google上看到了这个排名很高的页面: http : //blogger.forgottenskies.com/?p = 173这让我相信我并不是唯一一个遇到这个问题的人。

感谢您的任何见解。

尝试将cache: false添加到您传递给$.ajax()调用的选项中。 我以为它只会影响IE,但……

请参阅此处的缓存选项: http : //api.jquery.com/jQuery.ajax/

某些浏览器对可以同时发出的请求数量有限制。 您可能想要阅读此线程在流行的浏览器中允许多少并发AJAX(XmlHttpRequest)请求?

在过去,我使用队列来限制我的代码发送的同时请求的数量。