【问题标题】:AJAX pagination requests growing exponentiallyAJAX 分页请求呈指数增长
【发布时间】:2013-04-05 01:42:23
【问题描述】:

我有一个带有一些(jQuery ajax)选项卡的窗口,在每个选项卡中我都显示了一些关于用户的信息:发送、接收的消息、发布的帖子和制作的 cmets。我需要做一些分页,在页面之间来回切换时效果很好。但是在最后两个选项卡(写的帖子和 cmets)中,我看到完成的请求呈指数增长。这是部分代码

if ($pageno != $lastpage) { 
   echo '<div class="item next_page" id="next_page_no_'.$nextpage.'">Siguiente</div>';
}

jQuery 调用的代码运行良好:

$(".display_messages").on("click", ".next_page", function(){
var pageno = $(this).attr('id').replace('next_page_no_','');
$.get('retrieve_messages_rec.php?pageno='+pageno,function(data) {
    $('.display_messages').html(data);
})
});

jQuery 调用的代码运行得不太好:

$(".show_last_posts").on("click", ".next_page_posts", function(){
var pageno = $(this).attr('id').replace('next_page_no_','');
var usr_id= <?php echo mysql_real_escape_string($_GET['usr_id']); ?>;
$.get('user_last_posts.php?pageno='+pageno+'&usr_id='+usr_id,function(data) {
    $('.show_last_posts').html(data);
})
});

为了更好地理解,当您在正常工作的代码中单击“.next_page”时,您每次单击都会看到一个请求完成。但是当您单击“.next_page_posts”(在第二个示例中)时,您第一次收到文件“user_last_posts.php”的一个请求,第二次点击三个请求(对于接下来的几个帖子),六个请求去第三页,12 页,然后 24 页,以此类推。为什么会这样循环?这里显示的代码片段是否足以看出我的错误在哪里?既然它们基本上是相同的,为什么它在其中一些工作得很好,而在另一些工作却不行?还是我偏执,这很正常?谢谢

【问题讨论】:

  • 添加 '$.one($.get...' 只调用文件两次,但我的目标是只加载一次。

标签: jquery pagination


【解决方案1】:

区别在于.next_page_posts.next_page.next_page 绑定到单个元素,而 .next_page_posts 绑定到每个帖子。比较两个选择器:

console.log( [".next_page_posts:",  $(".next_page_posts").length,  ".next_page:",  $(".next_page").length] )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多