Javascript滚动分页正在从数据库中检索相同的数据
我在我的网站上使用javascript滚动分页。当一个页面被向下滚动时,一些项目会从数据库中加载。问题在于,滚动分页有时会从数据库中获取相同的数据。我使用了Javascript滚动分页正在从数据库中检索相同的数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在我的网站上使用javascript滚动分页。当一个页面被向下滚动时,一些项目会从数据库中加载。问题在于,滚动分页有时会从数据库中获取相同的数据。我使用了async:false。但是,它减缓了加载速度。 Javascript代码: if (check !== null) { $(window).scroll(function(ev) { if ($(window).scrollTop() + window.innerHeight >= $('#footer').offset
async:false
。但是,它减缓了加载速度。
Javascript代码:
if (check !== null) {
$(window).scroll(function(ev) {
if ($(window).scrollTop() + window.innerHeight >= $('#footer').offset().top) {
var last_id = $(".item:last").data("id");
loadData(last_id);
};
});
}
var dataCount = 1;
function loadData(last_id) {
$.ajax({
url: 'some/url/loader',
type: "get",
data: {
id: last_id
},
// async: false,
success: function(data) {
if (data) {
dataCount++;
$('#div').append(data);
check = 1;
} else if (!data) {
console.warn('no data');
check = null;
}
}
});
}
控制器中的加载程序方法:
public function actionLoader() {
$id = $_GET['id'];
$cat_id = $_GET['cat_id'];
$posts = SomeModel::getItems($id);
if (!empty($posts)) {
$q = $this - > renderPartial('view', array('data' => $posts));
echo $q;
}
}
最有可能的是
last\u id=$(“.item:last”).data(“id”)
指的是同一个id。尝试跟踪使用arr已经获取的内容,并添加另一个检查以确保JS没有获取已经获取的IDajax加载的内容不在DOM中,因此last id将是没有通过ajax加载的内容中的最后一个,因此你得到了同样的结果results@delboy1978uk为什么ajax加载的内容不在DOM中?他将内容附加到DOM:$('#div')。append(data)
是的,这是真的,但是因为它最初不在那里,所以您需要添加新的侦听器,可能通过调用success方法中的函数来实现。看看这个问题