先看代码
views.py:
def vms(request):
user = request.user
servers = List.objects.all()
return render_to_response(
'vmserver/all_vms.html', {
'list': servers,
'user': user,
}
)
template:
主机名
IP地址
应用名称
CPU
内存
磁盘
操作系统
电源
配置项
{% for vm in list %}
{{ vm.list_name }}
{{ vm.ip }}
{{ vm.app_name }}
{{ vm.cpu }}
{{ vm.mem }}
{{ vm.total_hard_disk }}
{{ vm.os }}
{{ vm.power_status }}
'''
由于我的List表中有2000多条数据,通过datatables插件渲染数据的时候,响应非常慢,需要10秒左右前端才能渲染完成,请问有什么优化的方法,能让速度更快。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
分页应当在后台完成,因为你在后台取到了所有
2000多条数据传给前台,前台在生成页面的时候就要加载这2000多条数据,如果分页在后台完成,每次只传给前台当前页面的,譬如50条数据,页面在渲染的时候自然会变快。你可以先这么试试,看我说的对不对:
上述代码我只加了一个
[:50],.all()方法依然会获取所有2000条数据,只是传给前端的只有50条,如果这样一来你的前端渲染速度变快了,那证明速度本身和objects.all()无关,只和前端接收的数据量有关。实际过程中,后台分页比这个稍微复杂些,要是我上面的结论没问题,我再更新吧……
加缓存,加索引,加分页
如果你用Django Restframework的话,可以使用框架原生提供的分页功能:
Refer: http://www.django-rest-framew...