提问人:peace_love 提问时间:2/11/2020 更新时间:2/11/2020 访问量:832
如何更快地从 json 文件加载到我的数据表中?
How can I load from a json file faster into my datatables?
问:
这是我的json文件 (含 5000 项):
{
"data": [{
"name": "file1.html",
"date": "2019-01-29T20:33:57.00163Z",
"size": "348"
},
{
"name": "file2.xml",
"date": "2019-01-29T20:33:57.000167Z",
"size": "401"
},
{
"name": "file3.html",
"date": "2019-01-29T20:33:57.000171Z",
"size": "1314"
}
]
}
我是这样加载的:
var table = $('.table').DataTable({
"pageLength": 10,
"data":{{ output.data|raw }},
但它真的很慢,需要 10 秒才能将数据表加载到我的页面上。
所以我尝试了服务器端方法:
var table = $('.table').DataTable({
"pageLength": 10,
"processing": true,
"serverSide": true,
"ajax": "{{ absolute_url(asset('files/data.json')) }}",
但现在加载速度更慢了...... 分页不再起作用。
有没有机会加快性能?
答:
1赞
Prabhash Rawat
2/11/2020
#1
当您处理客户端大型数据集(我定义为超过 1000 个)时,您可能希望切换到数据表数据的服务器端实现。
table = $('#example').DataTable( {
serverSide: true,
deferLoading: 57
ajax: {
url:"files/data.json",
},
});
评论
0赞
Prabhash Rawat
2/11/2020
我刚刚编辑了答案,您可以按照管道概念来减少对分页的 ajax 调用。
0赞
peace_love
2/11/2020
谢谢!我测试了你的代码。数据表加载速度快,但没有内容。No matching records found
1赞
peace_love
2/11/2020
我刚刚测试了你的 pipline 建议,它有效!! 数据表加载速度快。"processing": true, "serverSide": true, "ajax": $.fn.dataTable.pipeline( { url: '{{ absolute_url(asset('files/test.json')) }}', pages: 5 // number of pages to cache }),
0赞
peace_love
2/11/2020
唯一的问题是,搜索不再起作用,并且无法正确显示总条目(filtered from NaN total entries)
0赞
Prabhash Rawat
2/11/2020
让我检查一下并回复您。
评论
"paging": true,