0

我有一个页面加载时间过长,因为它需要从数据库中获取 50 多个对象。我想只加载前 10 个结果的页面,然后让服务器继续在后台加载其余结果,然后刷新页面。

有没有办法做类似的事情:

def foo_view(request):
    values = Foo.objects.all()[:10]
    render_to_response(template, values, context_instance=...)
    values = Foo.objects.all()
    return render_to_response(template, values, context_instance=...)

或者这是 ajax 的工作?(页面加载后立即重新加载数据。)

谢谢!

编辑:

事实证明我弄错了加载时间长的原因:实际上从数据库中获取 50-100 个对象几乎不会导致延迟。我的模板中有一个方法导致我的 n 项的 n^3 数据库命中,而我应该在视图函数中调用它一次,并将结果传递给我的模板。

4

1 回答 1

0

AJAX 是您的解决方案。将前 10 个对象添加到您的页面。然后如果用户向下滚动获取另一个 10 等等。喜欢推特。还是使用分页?:)

于 2012-07-16T13:48:09.900 回答