是否可以加快此 Ajax JSON 对数据表使用的调用?
Is it possible to speed up this Ajax JSON call for use with datatables?
Google Dev Tools - XHR header 你可以看到它调用的详细信息
https://usedlens.co.uk/data.cfc?method=getData
- 在生产环境中加载 3.6MB 需要大约 12 秒
- 在开发中加载 22.9MB 需要 <1 秒
开发和生产的数据量大致相同,代码也相同。
我尝试过使用服务器端处理,它加载数据的速度更快 3-4 秒,但 pagination/search/sorting 都具有相同的 3-4 秒响应时间。所以我坚持使用 ajax 选项。
我的数据表初始化
var resultsTable = $('#resultsTable').DataTable(
{
'serverSide': false,
'deferRender': true,
'ajax': {
'url': 'data.cfc?method=getData'
},
'columns': [
{ 'data': 'productname' },
{ 'data': 'price' },
{ 'data': 'retailersite' }
],
'columnDefs': [
{ "targets": [1,2], "searchable": false },
{ "width":"10%","targets": [1]},
{ "width":"20%","targets": [2]}
]
}
);
我用 JSON 文本文件替换了我的 CFC 源,它仍然需要 8-11 秒。
我还能做些什么来加快速度吗?
我切换到服务器端处理
https://datatables.net/examples/server_side/
所以我只传递了视图中的当前记录 (10/25/50/100) 而不是全部 50,000。
这不是我第一次尝试,但这次我修复了代码中导致 运行 变慢的错误。
正确实施效果很好。
Google Dev Tools - XHR header 你可以看到它调用的详细信息 https://usedlens.co.uk/data.cfc?method=getData
- 在生产环境中加载 3.6MB 需要大约 12 秒
- 在开发中加载 22.9MB 需要 <1 秒
开发和生产的数据量大致相同,代码也相同。
我尝试过使用服务器端处理,它加载数据的速度更快 3-4 秒,但 pagination/search/sorting 都具有相同的 3-4 秒响应时间。所以我坚持使用 ajax 选项。
我的数据表初始化
var resultsTable = $('#resultsTable').DataTable(
{
'serverSide': false,
'deferRender': true,
'ajax': {
'url': 'data.cfc?method=getData'
},
'columns': [
{ 'data': 'productname' },
{ 'data': 'price' },
{ 'data': 'retailersite' }
],
'columnDefs': [
{ "targets": [1,2], "searchable": false },
{ "width":"10%","targets": [1]},
{ "width":"20%","targets": [2]}
]
}
);
我用 JSON 文本文件替换了我的 CFC 源,它仍然需要 8-11 秒。
我还能做些什么来加快速度吗?
我切换到服务器端处理
https://datatables.net/examples/server_side/
所以我只传递了视图中的当前记录 (10/25/50/100) 而不是全部 50,000。
这不是我第一次尝试,但这次我修复了代码中导致 运行 变慢的错误。
正确实施效果很好。