我的页面加载时间太长,因为它需要从数据库中提取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个数据库命中,当我应该在视图函数中调用它一次,并将结果传递给我的模板。
答案 0 :(得分:0)
AJAX是您的解决方案。将前10个对象添加到页面中。然后,如果用户向下滚动,则获取另一个10,依此类推。喜欢推特。还是使用分页? :)