它可能只是太深夜,我在这里看到一个明确的解决方案,但我想我会得到任何人的一些想法与意见了......防止重复无限滚动的ajax装载机
的网站我工作中有一长串用户帖子。当你到达或接近底部时,我已经将所有滚动事件处理程序处理到下一批100个帖子中的ajax。
我的问题是...我如何防止以下情况?
- 用户X访问该网站,并加载职位1-100
- 了10个用户访问该网站,并添加10个职位
- 用户X滚动到下和负载岗位101-200,这曾经是张贴91-190
- 用户X与页面上的帖子91-100重复结束
我会包括下面我的代码的情况下,一个精简版本,它可以帮助其他人一起
$.ajax({
type:'POST',
url:"/userposts.php",
data:{ limit: postCount },
success:function(data) {
$("postsContainer").append(data);
if ($("postsContainer").find("div[id='lastPostReached']")) {
// unbind infinite scrolling event handlers
}
},
dataType:'html'
});
在我的PHP脚本
我主要是:
if (! isset($_POST["limit"])) {
$sql .= " LIMIT 101"; // initial request
} else {
$sql .= " LIMIT {$_POST["limit"]},101
}
$posts = mysql_query($sql);
while($post = mysql_fetch_assoc($posts)) {
/* output formatted posts */
}
// inform callback handler to disable infinite scrolling
if (mysql_num_rows($posts) < 101) {
echo '<div id="lastPostReached"></div>';
}
这给了我无限滚动不错,方便,但我怎样才能防止虚拟复制,将显示当新记录,已添加到Ajax请求之间的表中?
辉煌,谢谢!这一切似乎现在这么简单... – overeasy 2012-01-05 08:40:27
如果有人删除了一些内容会怎么样? – 2013-02-07 12:35:53