gpt4 book ai didi

javascript - jquery合并所有相同的请求?

转载 作者:行者123 更新时间:2023-12-01 02:52:06 25 4
gpt4 key购买 nike

我在服务器端编写了一个ajax api来从中获取随机列数据库中的一个表使用了Express和nodejs,并在客户端循环请求该接口(interface)10次。但是,每次循环我都会得到10个相同的响应。

经过测试,我发现即使我用jquery(v1.11.1)调用api 10次,我在服务器端也只收到一个请求;然后我在 [$.ajax()] 的选项 [data] 中添加不同的参数,我在服务器端收到 10 个请求,在客户端收到 10 个不同的响应;我以为这是[$.ajax]的默认设置,所以我尝试在jquery的文档中找到它,但我没有找到它。(google也没有找到);

我确实为每个请求使用不同的参数来解决这个问题,但我认为这不是最好的解决方案。所以,我的问题是:

是否有任何设置可以为每个请求发送唯一的请求,即使这些请求在使用 jquery(v1.11.1) 时都是相同的?

ps:请原谅我糟糕的英语水平,我无法更好地表达自己......

for( var i = 0; i < 10; ++i ) {
$.ajax( {
type: "get",
url: "/getNickname",
data: {
//index: i //my solution
},
beforeSend: function ( request ) {

},
success: function ( res ) {
console.log( "test response is ", JSON.stringify( res ) );
},
error: function ( err ) {
reject( err );
}
} );
}
//below is the function to get a random column from table
function getNicknameFromDB() {
return new Promise( ( resolve, reject ) => {
pg_pool.query( "select nickname from robot_nick_datas offset random() * (select count(*) from robot_nick_datas) limit 1;", (err, result)=> {
if( err ){
console.error( "query error: ", err );
reject(err);
}
let nickname = Array.from(result.rows)[0];
// console.log( "nick from database is ", nickname );
resolve( nickname );
} )
} );
}
//below is the response
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"
test response is "{\"nickname\":\"caro\"}"

最佳答案

很可能,响应正在被缓存,因为它是 GET 请求。尝试告诉 jQuery 禁用缓存:

$.ajax( {
type: "get",
url: "/getNickname",
cache: false, // <--- here
data: {
//index: i //my solution
},
beforeSend: function ( request ) {

},
success: function ( res ) {
console.log( "test response is ", JSON.stringify( res ) );
},
error: function ( err ) {
reject( err );
}
} );

关于javascript - jquery合并所有相同的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46903295/

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