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

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

WBOY
发布: 2016-06-23 13:35:21
原创
902 人浏览过

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');		}	}};
登录后复制

你每次都请求的是整页 $.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这样写的,但是不行呢

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板