Javascript 相同ID的无限滚动重复
下面是我的函数,我正在使用它根据Javascript 相同ID的无限滚动重复,javascript,jquery,ajax,Javascript,Jquery,Ajax,下面是我的函数,我正在使用它根据
.post list
加载数据,但我仍然得到了以前提取的相同id的重复。请告知我如何解决此问题,以便旧ID不会再次加载/重复
function loadData()
{
$('div.postloader').html('<img src="img/loader.gif">');
$.post("getData.php?lastID=" + $(".post-list:last").attr("id"),
function(data){
if (data != "") {
$(".post-list:last").after(data);
}
$('div.postloader').empty();
});
};
函数loadData()
{
$('div.postloader').html(“”);
$.post(“getData.php?lastID=”+$(“.post-list:last”).attr(“id”),
功能(数据){
如果(数据!=“”){
$(“.post list:last”)。在(数据)之后;
}
$('div.postloader').empty();
});
};
防止这种情况的一种可能方法是将最后一个ID存储在JS中的全局变量中并递增,这样您就不必依靠选择正确的元素来查找要发布的ID。如果从服务器提取数据的速度太快,请尝试添加一个标志,以防止在请求运行时提取项目:
var flagPulling = false;
function loadData() {
if( flagPulling ) {
return;
}
flagPulling = true;
$('div.postloader').html('<img src="http://www.zesteve.com/img/loader.gif">');
$.post("/getData.php?lastID=" + $(".post-list:last").attr("id"), function(data){
if (data != "") {
$(".post-list:last").after(data);
}
$('div.postloader').empty();
flagPulling = false;
});
};
var=false;
函数loadData(){
如果(拉旗子){
返回;
}
FlagPull=true;
$('div.postloader').html(“”);
$.post(“/getData.php?lastID=“+$(“.post-list:last”).attr(“id”),函数(数据){
如果(数据!=“”){
$(“.post list:last”)。在(数据)之后;
}
$('div.postloader').empty();
FlagPull=假;
});
};
您应该防止重复调用$.post
,直到请求返回为止(因为它只是您的代码片段-我猜loadData被多次调用?)。快速观察一下,ids不能以数字开头getData.php
可能有问题。一种可能的解决方案是将最后一个ID存储在一个全局javascript变量中,并递增该值,而不是从DOMhay中选择最后一个ID,您是否有解决此问题的方法?您能否给出一个快速的代码示例?