加载初步结果,然后在完成时重新加载(Django或ajax)

时间:2012-07-16 13:12:45

标签: ajax django

我的页面加载时间太长,因为它需要从数据库中提取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个数据库命中,当我应该在视图函数中调用它一次,并将结果传递给我的模板。

1 个答案:

答案 0 :(得分:0)

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