Javascript ajax$.get()-请求两次
如果到达页面底部,此js代码将从服务器加载更多内容:Javascript ajax$.get()-请求两次,javascript,jquery,ajax,Javascript,Jquery,Ajax,如果到达页面底部,此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_pag
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');
}
}
if($(窗口).scrollTop()+$(窗口).height()==GetDochHeight()){
var next_pagenumber=parseInt($('next_pagenumber').val();
var num_pages=parseInt($('num_pages').val();
if(next_pagenumber这里是Bharath提到的测试用例。将布尔变量设置为true,并在成功后将其设置为false
我在检查页码的IF语句中检查布尔值是否为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');
}
}
var ajaxTest=true;
如果($(窗口).scrollTop()+$(窗口).height()==getDocHeight()){
var next_pagenumber=parseInt($('next_pagenumber').val();
var num_pages=parseInt($('num_pages').val();
if(next_pagenumber)您可能需要查看一个去盎司
函数。使用一个布尔值-在ajax启动时将其设置为true,如果成功,则将其设置为false。这会起作用。@JamieDixon听起来不错,但找不到适合我的例子:(可能重复为什么在$中使用超时。get()
success callback?关于去Bouncing事件,请参见例如:您设置var ajaxTest=true;
在每个滚动事件中,变量是否不必是全局变量?@doniyor您应该真正去Bouncing事件,这通常是避免您遇到的行为的最佳方法。我同意,不过,我只是在上面展示了一个注释示例。This可能不是最干净的方式,但它是一种方式。:@a.Wolff你的权利。我会看看debouncing。我一直想尝试it@MikeLegacy是的,我想还有一种方法,就是在成功回调中重置全局变量。也许OP想要某种无限滚动