滚动分页的代码,会多次请求页码,导致数据重复,经过本人测试,是以下代码的问题,但没有找到解决方法,求解决

WBOY
Release: 2016-06-23 13:35:21
Original
857 people have browsed it

var page=1;
var setFixed=function(){
var t=$(document).scrollTop(); //卷上去的高度
var wh=$(window).height();//窗口的高度
var h=$(document).height();//网页窗口的高度
var data={};
var cateid=$("#cateid").val();
if(page>0){
$("#load").show();
//a=document.body.scrollHeight;
//b=$(window).scrollTop();
//c=$(window).height();
//if(c==(a-b) || page ==1){
if(t+wh>=h-50){
$.post(app.config.site+"/Game/getGame",{cateid:cateid,page:page},function(data){
$("#load").hide();
if(data.status==1){
//e.preventDefault();
$(".list_class").html($(".list_class").html()+data.info);
//$(".list_class").html(data.info);//覆盖页码
page++;
}else{
page=0;
}

},'json');

}
}
};
setFixed(page);
window.onscroll=setFixed;
});
});


回复讨论(解决方案)

设定一个 isajaxsend=false 的变量(只用于判断是否有滚动分页请求正在执行也可以)

var isajaxsend=false;var page=1;var setFixed=function(){	var t=$(document).scrollTop(); //卷上去的高度	var wh=$(window).height();//窗口的高度	var h=$(document).height();//网页窗口的高度	var data={};	var cateid=$("#cateid").val();	if(page>0){		$("#load").show();		//a=document.body.scrollHeight;		//b=$(window).scrollTop();		//c=$(window).height();		//if(c==(a-b) || page ==1){		if(t+wh>=h-50){			if (isajaxsend) {//判断是否有滚动分页正在请求,若有则不请求				return false;			}			isajaxsend = true;//标识正在请求分页内容			$.post(app.config.site+"/Game/getGame",{cateid:cateid,page:page},function(data){				$("#load").hide();				if(data.status==1){					//e.preventDefault();						$(".list_class").html($(".list_class").html()+data.info);					//$(".list_class").html(data.info);//覆盖页码					page++;				}else{					page=0;				}				isajaxsend = false;//不论成功与否,都标识为没有请求			},'json');		}	}};
Copy after login

你每次都请求的是整页 $.post(app.config.site+"/Game/getGame",{cateid:cateid,page:page}......
但却是追加显示 $(".list_class").html($(".list_class").html()+data.info);

@xuzuning :$.post(app.config.site+"/Game/getGame",{cateid:cateid,page:page}..,是将cateid和page提交到php文件里,php文件接收值,查询数据,通过AJAX返回, $(".list_class").html($(".list_class").html()+data.info); 接收返回的数据。谢谢你

@jam00 : 谢谢你,数据不在重复了,你能跟我说一下,为什么这样写吗?一开始的时候,我也用true和false这样写的,但是不行呢

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template