一开始,我想为我糟糕的英语说声对不起。
jquery v2.0.0在Google Chrome,Mozilla Firefox,Opera最后版本中
今天我遇到了一个问题
timer_multy_update = setInterval(
function()
{
$.get(
'test.php',
function (result){
parseAndUpdateData(result);
},
"json"
);
}, 500)问题是,如果服务器挂起(我不知道如何正确地说),即从服务器获得答复的时间是0,5秒,但计时器不会停留并继续发送请求,因此在服务器应答之前,所有的答案都会返回一小段时间,现在,在firebug中,所有请求都是正确的,但是变量结果只包含来自服务器的第一个答案的一个答案。也许我没有清楚地表达自己,我想说2-4请求服务器返回不同的答案,但是结果是从服务器获得第一个答案的2-4倍,这是一个大问题。
我试图在互联网上找到信息,但一无所获。
我不知道为什么,但第一个想法是jquery中的错误,我开始查看源代码,并发现一些关于heder和它的哈希。所以我试着改变我的脚本
$.get
(
'/php/mine/update_cells.php',
't='+Math.random(),
function (result)
{
parseAndUpdateData(result);
},
"json"
);它工作正常,所以我想现在,错误它是或我的错误,而不是理解。
发布于 2013-08-24 06:50:09
这不是bug,而是缓存。对于一个浏览器来说,缓存一段时间的资源效率要高得多,然后每次有人想要的时候都得去获取它。对于静态资源来说,这是可以的,即那些变化不大的资源,但是对于经常返回相同URL的不同结果的web服务,则需要禁用缓存。如果控制服务器端代码,则向响应中添加Cache-Control: no-cache头。您可以在jQuery中禁用缓存,但据我所知,您必须使用ajax()函数--没有办法使用get()。
$.ajax({
url: "/php/mine/update_cells.php",
success: function(result){
parseAndUpdateData(result);
},
cache: false,
dataType: 'json'
});https://stackoverflow.com/questions/18415584
复制相似问题