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