gpt4 book ai didi

javascript - ajax $.get() - 请求两次

转载 作者:行者123 更新时间:2023-12-03 11:27:48 25 4
gpt4 key购买 nike

如果您到达页面底部,此 js 代码将从服务器加载更多内容:

if ($(window).scrollTop() + $(window).height() == getDocHeight()) {
var next_pagenumber = parseInt($('#next_pagenumber').val());
var num_pages = parseInt($('#num_pages').val());

if(next_pagenumber <= num_pages){
$.get("?page_number=" + (next_pagenumber).toString(), function(data) {
if(data != "nomore"){
setTimeout(
function(){
$('#next_pagenumber').val(next_pagenumber+1);
$('#morenews').append(data);
}, 500);
}else{
$('#loadmore').hide();
}
});

}else{
console.log('no more pages to load');
}
}

但是,如果您快速向下滚动两次,则会发送 2 个具有相同 GET 的请求。

如何让代码等待,直到前面的请求的响应出现?

最佳答案

这是 Bharath 所说的测试用例。设置一个 bool 变量为true,成功后设置为false。

我正在检查检查页码的 IF 语句中的 bool 值是否为 true。

var ajaxTest = true;
if ($(window).scrollTop() + $(window).height() == getDocHeight()) {
var next_pagenumber = parseInt($('#next_pagenumber').val());
var num_pages = parseInt($('#num_pages').val());

if(next_pagenumber <= num_pages && ajaxTest == true){
$.get("?page_number=" + (next_pagenumber).toString(), function(data) {
ajaxTest = false;
if(data != "nomore"){
setTimeout(
function(){
$('#next_pagenumber').val(next_pagenumber+1);
$('#morenews').append(data);
}, 500);
}else{
$('#loadmore').hide();
}
});

}else{
console.log('no more pages to load');
}
}

此外,这是一个 jsFiddle http://jsfiddle.net/5eh2b7fb/1/

关于javascript - ajax $.get() - 请求两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26846035/

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