数组数据的无限分页

时间:2017-07-22 11:36:28

标签: javascript php jquery arrays ajax

我有一个包含500多个条目的大型数组。结构是这样的:

      Array
      (
      [result] => Array
      (
         [mounts] => Array
            (
                [0] => Array
                    (
                        [name] => Test0
                        [spellId] => 230401
                        [creatureId] => -73991
                        [itemId] => 142369
                    )

                [1] => Array
                    (
                        [name] => Test1                           
                        [spellId] => 61447
                        [creatureId] => 32213
                        [itemId] => 44234
                    )

                    .....

我使用foreach获取数组数据:

               foreach ($r['result']['mounts'] as $item) echo '
                    <li class="span3 clearfix" data-tag=', 
                    $item['qualityId'], '>
                    ', $item['name'], '.
                    </li>';
                    echo '

我想要无休止的分页。因此,当用户到达页面末尾并向下滚动时,它应该加载下一个数据。

我知道有一些无限分页的插件,但我不让它们使用数组中的数据。您对简单的解决方案有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您需要设置分页并设置窗口滚动侦听器,以便在用户滚动到底部时请求下一页。例如,如果设置了页面,则只发送在“页面”上显示的内容,而不是发送所有条目。然后,在您的js中,您可以设置一个窗口滚动侦听器,以便在用户滚动时请求下一个“页面”。

我创建了一个jsfiddle来展示JS方面的东西。我的addMoreElements会被替换,但是你想要设置你的分页ajax请求,我会把它的一部分留给你。

这是小提琴真正重要的部分:

var $window = $(window),
  $document = $(document);
$window.scroll(function() {
  if ($window.scrollTop() + $window.height() == $document.height()) {
    addMoreElements();
  }
});