Django无限滚动一次浏览所有页面而不实际加载它们

赛义夫

我正在使用这个优秀的教程为我的 Django 应用程序实现无限滚动

我希望应用程序加载 9 篇文章,然后显示“正在加载...”标志并再加载 9 篇文章。

然而,发生的情况是,当用户点击底部时,它显示加载标志并且什么也没有发生。在终端上,我可以看到它“GET”一次请求所有页面,如下所示:

[06/Jul/2017 18:22:26] "GET /?page=2 HTTP/1.1" 200 19124 [06/Jul/2017 18:22:27] "GET /?page=3 HTTP/1.1" 200 18774 [06/Jul/2017 18:22:27] "GET /?page=4 HTTP/1.1" 200 18772 [06/Jul/2017 18:22:28] "GET /?page=5 HTTP/1.1" 200 19031 [06/Jul/2017 18:22:28] "GET /?page=6 HTTP/1.1" 200 18965 [06/Jul/2017 18:22:28] "GET /?page=7 HTTP/1.1" 200 18676 [06/Jul/2017 18:22:28] "GET /?page=8 HTTP/1.1" 200 18866 [06/Jul/2017 18:22:28] "GET /?page=9 HTTP/1.1" 200 19094 [06/Jul/2017 18:22:28] "GET /?page=10 HTTP/1.1" 200 18750

这是视图中的代码:

def context_generator(request, title, category):
    """made this function because views are very similar"""
    context_dict={}

    if(category == "index"):
        articles_list = Article.objects.order_by('-pub_date')
    else:
        articles_list = Article.objects.filter(category=category).order_by('-pub_date')

    page = request.GET.get('page', 1)
    paginator = Paginator(articles_list, 9)

    try:
        articles = paginator.page(page)
    except PageNotAnInteger:
        articles = paginator.page(1)
    except EmptyPage:
        articles = paginator.page(paginator.articles_list)

    context_dict['articles'] =  articles
    context_dict['title'] = title

    return context_dict

def index(request):
    return render(request, 'app_name/index.html', context_generator(request, "page title", "index"))

这是 index.html:

{% block body_block %}

    <div class="container infinite-container">

         {% for article in articles %}
          <!-- render articles -->
         {% endfor %}

    </div>


    {% if articles.has_next %}
        <a class="infinite-more-link" href="?page={{ articles.next_page_number }}">More</a>
    {% endif %}


    <div class="loading" style="display: none;">
      Loading...
    </div>

{% endblock %}

这个脚本在 base.html 中:

<script>
  var infinite = new Waypoint.Infinite({
    element: $('.infinite-container')[0],
    onBeforePageLoad: function () {
    $('.loading').show();
    },
    onAfterPageLoad: function ($items) {
    $('.loading').hide();
    }
  });
</script>

这些导入位于 base.html 标头中:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="{% static 'js/jquery.waypoints.min.js' %}"></script>
<script src="{% static 'js/infinite.min.js' %}"></script>
赛义夫

那是因为我忘记将这个类添加到每个文章 div 中:

infinite-item

所以它必须是这样的:

<div class="container infinite-container">

     {% for article in articles %}
          <div class="article col-md-4 col-lg-4 col-xs-12 infinite-item"></div>

     {% endfor %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

cppcheck可以试运行以列出所有文件而不实际检查它们吗?

来自分类Dev

如何一次加载无限滚动中的所有条目以解析python中的HTML

来自分类Dev

如何一次加载Crystal报告的所有页面

来自分类Dev

在OSX上,如何一次重新加载所有可见的浏览器窗口?

来自分类Dev

如何创建一个具有重载好处而不实际重载的函数?

来自分类Dev

如何创建一个具有重载好处而不实际重载的函数?

来自分类Dev

有什么方法可以在不实际编译手写笔局部的情况下加入它们?

来自分类Dev

PyChar:一次浏览所有文件和类

来自分类Dev

延迟后(仅一次)或第一次加载页面上的 iFrame 后滚动到页面顶部

来自分类Dev

无限滚动+石工加载所有物品

来自分类Dev

有没有一种方法可以检查不实际压缩的文件可以压缩多少?

来自分类Dev

如何在不实际滚动的情况下确定滚动方向

来自分类Dev

如何使cassandra将值的元组存储在一行中,而不实际存储列表?那有可能吗?

来自分类Dev

如何使cassandra在一行中存储值的元组,而不实际存储列表?那有可能吗?

来自分类Dev

Jssor Content滑块一次加载所有图像

来自分类Dev

如何一次加载所有背景图像

来自分类Dev

反应一次加载所有图像

来自分类Dev

谷歌浏览器打印预览不会第一次加载页面

来自分类Dev

HTML页面第一次加载和第二次加载不同(谷歌浏览器)

来自分类Dev

第一次加载页面

来自分类Dev

如何在Firefox / Chrome中多次返回而不实际加载先前的站点?

来自分类Dev

触发onserverclick而不实际点击按钮

来自分类Dev

一次关闭所有Chrome浏览器或Firefox浏览器实例

来自分类Dev

AngularJS Ionicframework无限滚动一次一次获取列表10

来自分类Dev

Django为什么不实际编写更改以测试数据库

来自分类Dev

Django为什么不实际编写更改以测试数据库

来自分类Dev

有没有一种方法可以提及用户(蓝色突出显示)而不实际对其进行ping操作?

来自分类Dev

Javascript 情节。如何创建一个情节但不实际绘制它。

来自分类Dev

弹出页面加载仅每个用户加载一次

Related 相关文章

  1. 1

    cppcheck可以试运行以列出所有文件而不实际检查它们吗?

  2. 2

    如何一次加载无限滚动中的所有条目以解析python中的HTML

  3. 3

    如何一次加载Crystal报告的所有页面

  4. 4

    在OSX上,如何一次重新加载所有可见的浏览器窗口?

  5. 5

    如何创建一个具有重载好处而不实际重载的函数?

  6. 6

    如何创建一个具有重载好处而不实际重载的函数?

  7. 7

    有什么方法可以在不实际编译手写笔局部的情况下加入它们?

  8. 8

    PyChar:一次浏览所有文件和类

  9. 9

    延迟后(仅一次)或第一次加载页面上的 iFrame 后滚动到页面顶部

  10. 10

    无限滚动+石工加载所有物品

  11. 11

    有没有一种方法可以检查不实际压缩的文件可以压缩多少?

  12. 12

    如何在不实际滚动的情况下确定滚动方向

  13. 13

    如何使cassandra将值的元组存储在一行中,而不实际存储列表?那有可能吗?

  14. 14

    如何使cassandra在一行中存储值的元组,而不实际存储列表?那有可能吗?

  15. 15

    Jssor Content滑块一次加载所有图像

  16. 16

    如何一次加载所有背景图像

  17. 17

    反应一次加载所有图像

  18. 18

    谷歌浏览器打印预览不会第一次加载页面

  19. 19

    HTML页面第一次加载和第二次加载不同(谷歌浏览器)

  20. 20

    第一次加载页面

  21. 21

    如何在Firefox / Chrome中多次返回而不实际加载先前的站点?

  22. 22

    触发onserverclick而不实际点击按钮

  23. 23

    一次关闭所有Chrome浏览器或Firefox浏览器实例

  24. 24

    AngularJS Ionicframework无限滚动一次一次获取列表10

  25. 25

    Django为什么不实际编写更改以测试数据库

  26. 26

    Django为什么不实际编写更改以测试数据库

  27. 27

    有没有一种方法可以提及用户(蓝色突出显示)而不实际对其进行ping操作?

  28. 28

    Javascript 情节。如何创建一个情节但不实际绘制它。

  29. 29

    弹出页面加载仅每个用户加载一次

热门标签

归档