我有以下几点:
myfunc = function(url, callback, etc...) {
$.ajax({
type: 'GET',
url: url,
etc.});
}
function changeDivThis(data) {
$('#this').html(data);
}
function changeDivThat(data) {
$('#that').html(data);
}
我连续两次调用ajax函数:
myfunc('/getData?mode=THIS', changeDivThis, etc...);
myfunc('/getData?mode=THAT', changeDivThat, etc...);
结果是,一些重要的时间,比如20%的时间,id='this‘的div将被调用返回的数据填充。当我查看应用服务器日志时,我看到了一些意想不到的东西,比如只有一个请求。
当我在Firebug中运行时,这个bug永远不会发生,一切都很好。我注意到Firebug大大降低了浏览器操作的速度,所以我假设这是原因的线索,与并发有关,例如第二个调用首先从服务器返回,然后浏览器认为这是对第一个调用的响应。对,是这样?
因此,在我有限的AJAX经验中,我认为它支持在服务器上抛出几个并发请求,然后按照它们返回的任何顺序排序响应。这个问题使我相信AJAX (或者我的Firefox = 3.6.24/jQuery =1.4.4版本)将两个请求视为相同的url,尽管它们都有不同的参数。
我在Google:http://blogger.forgottenskies.com/?p=173上看到了这个排名很高的页面,这让我相信我并不是唯一一个经历这个问题的人。
谢谢你的见解。
发布于 2011-11-21 22:02:59
尝试将cache: false
添加到传递给$.ajax()
调用的选项中。我以为这只会影响到IE但是..。
请参见此处的缓存选项:http://api.jquery.com/jQuery.ajax/
https://stackoverflow.com/questions/8219082
复制相似问题