gpt4 book ai didi

javascript - jquery ajax异步请求错误

转载 作者:行者123 更新时间:2023-11-28 08:56:33 24 4
gpt4 key购买 nike

首先我想对我糟糕的英语表示抱歉。

Google Chrome、Mozilla Firefox、Opera 最新版本中的 jquery v2.0.0

今天我遇到了一个问题

timer_multy_update = setInterval(
function()
{
$.get(
'test.php',
function (result){
parseAndUpdateData(result);
},
"json"
);
}, 500)

问题是,如果服务器挂起(我不知道如何正确表达),即从服务器获取答复的时间超过 0,5 秒,但计时器不会停留并继续发送请求,所以在服务器应答之前,可以发送 2-4 个请求,所有这些答案都会返回一段时间,现在出现一个问题,在 firebug 中,所有请求都正确,但变量结果仅包含来自服务器的第一个答案的一个答案。也许我没有表达清楚,我想说2-4次向服务器请求返回不同的答案,但结果得到的都是服务器第一个答案的2-4倍,这是一个大问题。

我试图在互联网上查找信息,但一无所获。

我不知道为什么,但第一个想法是jquery中的错误,我开始查看源代码,发现一些关于heder及其哈希值的提及。所以我尝试更改我的脚本并找到方法

$.get
(
'/php/mine/update_cells.php',
't='+Math.random(),
function (result)
{
parseAndUpdateData(result);
},
"json"
);

它工作正常所以我现在想,这是错误还是我的错误并且不理解

最佳答案

这不是错误,而是缓存。对于浏览器来说,将资源缓存一段时间然后每次有人需要时都必须去获取它,这样会更有效率。这对于静态资源来说很好,即那些变化不大的资源,但对于经常为同一 URL 返回不同结果的 Web 服务,您将需要禁用缓存。如果您控制服务器端代码,请将 Cache-Control: no-cache header 添加到响应中。您可以在 jQuery 中禁用缓存,但据我所知,您必须使用 ajax() 函数 - 无法使用 get() 来做到这一点。

$.ajax({
url: "/php/mine/update_cells.php",
success: function(result){
parseAndUpdateData(result);
},
cache: false,
dataType: 'json'
});

关于javascript - jquery ajax异步请求错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com