Javascript滚动到底,生成重复的请求
Javascript scroll to bottom generating duplicate requests
我有以下javascript代码用于创建一种无限滚动UI。问题是当我用鼠标滚轮滚动时,它会产生几个请求。
样品HERE
var canLoad = true;
$(window).scroll(function()
{
if($(window).scrollTop() == $(document).height() - $(window).height() && canLoad)
{
canLoad = false;
$('div#loadmoreajaxloader').show();
$.ajax({
url: "/loadmore.html",
success: function(html)
{
if(html)
{
var $html = $(html);
$html.imagesLoaded(function() {
$('div#loadmoreajaxloader').hide();
$("#container").masonry('appended', $html, true);
}).appendTo($("#container"));
}else
{
$('div#loadmoreajaxloader').html('<center>No more backgrounds to show.</center>');
}
}
});
canLoad = true;
}
});
您的最佳选择是在scroll
函数中使用计时器,并在每次请求之前取消它:
var timer;
$(window).scroll(function()
{
timer && clearTimeout(timer);
timer = setTimeout(function()
{
// Run whatever code you want here...
}, 300);
});
小提琴在这儿:http://jsfiddle.net/FcxSL/
我看错了你的问题,
以下是你需要做的,当您在中ajax内容时,请确保为一个ajaxeddiv提供一个id。然后你放一个if语句
检查该元素是否存在,如果存在,它将不会再次执行post请求,如果不在dom中,它将执行请求。
相关文章:
- 幻灯片滚动javascript不起作用
- 将视口底部滚动到元素底部
- jQuery Lazy加载动画滚动
- ajax请求的顺序总是不同的
- 设置滑块分区上的滚动
- 我如何发送AJAX请求的内容是通过无限滚动加载的
- Javascript滚动到底,生成重复的请求
- 在结束请求上设置多个滚动条位置
- 使用AngularJS$http.get在滚动时重复请求JSON数组
- text区域高度请求滚动高度流问题
- 仅当收到 Ajax 请求的字符串消息时,才滚动到底部
- 滚动时的 AJAX 请求
- 向下滚动时的新 AJAX 请求
- 在ajax请求时保持滚动位置
- 离子列表无限滚动问题与Assinc请求
- 滚动时对数据库进行双重请求
- 如何防止页面在ajax请求后滚动(返回false不起作用或可能在错误的位置)
- 无限滚动淘汰多个请求
- 材料角度无限滚动与$http请求
- Rails kaminari无限滚动:7个请求加载1页