gpt4 book ai didi

Jquery:对同一 URL 的多个 ajax 调用的行为

转载 作者:行者123 更新时间:2023-12-01 06:35:38 26 4
gpt4 key购买 nike

我今天遇到了一些令人惊讶的行为,并想确认这对于 jquery 来说是正常的,而不是做一些愚蠢的事情......

我有一个函数可以进行ajax调用并在promise.done()上执行一些操作。下面是一个具有相同目的的简化示例。

function getRandom() {
console.log('calling');
var promise = $.ajax({
url: '/getrandom/',
type: 'GET'
});
promise.done(function (data) {
console.log('got ' + JSON.stringify(data));
});
}

就本问题而言,假设服务器将使用每个请求生成的随机数进行响应。

如果我调用此函数的速度足够快,以便在第一个响应之前打开多个调用,那么我会得到如下输出:

calling
calling
calling
got {num:3452345}
got {num:3452345}
got {num:3452345}
calling
calling
calling
got {num:2342342}
got {num:2342342}
got {num:2342342}

这对我来说非常令人惊讶,因为它表明 promise (或 jquery 内部的某些机制)以某种方式被覆盖。

这是正常的预期行为吗?

谢谢

[jQuery v 1.8.2]

最佳答案

您是否尝试过使用cache:false

参见Ajax Jquery Api Documentation

执行 GET 查询时,您的浏览器将缓存 Ajax。您应该检查您的服务器是否也收到 1 个查询而不是 3 个。

关于Jquery:对同一 URL 的多个 ajax 调用的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17105094/

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