lazyload jquery |只要 scroll 到最下面,會不斷跟後端請求,但明明已經沒有數據?
$(window).scroll(function(){
var WindowHeight = $(window).height();
if($(window).scrollTop() >= $(document).height() - WindowHeight){
$('#loader').html('<img src="../images/loading_v2.svg">');
var LastDiv = $(".data-display:last");
var LastId = $(".data-display:last").attr("id");
var ValueToPass = "lastid="+LastId;
$.ajax({
type: "POST",
url:"/module/user/order/lazyload.app",
data: ValueToPass,
cache: false,
success: function(data){
if(data != ''){
LastDiv.after(data);
}else{
$('#loader').html('沒有更多。');
}
}
});
}
return false;
});
好怪的現象,不知道哪裡寫錯了
只要 scroll 到最下面,會不斷跟後端請求,但明明已經沒有數據,必須要稍微往上 scroll 一點,才會出現 沒有更多。
不然他就會一直出現 「<img src="../images/loading_v2.svg">」 loading 圖,然後消失,然後又出現 loading 圖,又消失,不斷重複
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这段代码本身并没有判断没有数据的时候不再触发加载., 像楼上说的可以加个标志判断.
比如在scroll最顶部加上:
在请求无数据时:
本身还需要加另一个标志,是否在加载中.
...可能是滚动的太猛,
scroll
触发多次,造成多次请求。设置个标志位试试,每次请求前检查标志位,判断是否正在请求,scroll加throttle
函数。