リモートcsvファイルからデータを読み取り、データテーブルに表示する前に処理を行う次の関数があります。
function loadGrid()
{
link='{{ url("thecsvfile") }}/'+$('#class-id').val();
Papa.parse(link, {
download: true,withCredentials: true,header:true,
step: function(results, parser) {
//.... process the data row by row
cleanDataForGrid(results.data);
},
complete:function()
{
table =$('#the-grid').DataTable({
responsive: true,
destroy: true,
'bProcessing': true,
paging: false,
searching: false,
info:false,
scrollCollapse:true,
'columnDefs': [{
'targets': 0,
'searchable':false,
'orderable':false,
'width':'1%',
'className': 'dt-body-center',
'render': function (data, type, full, meta){
return '<input type="checkbox" class="the_check">';
},
}],
});
updateDownloaded();
}
});
}
問題は、CSV ファイルに多くの行がある場合、ロードに時間がかかり、ブラウザがハングまたはクラッシュすることです。ファイルに X 行を超える行がある場合、ダウンロードを完全に回避するために、最初に行数を取得する方法はありますか? 行数のみが返されるような実装を取得できた場合。
function getRows()
{
var rowcount= Papa.parse(link, {download: false});
if(rowcount<50001) loadGrid();
}
そのような実装を持つことは可能ですか?