リモートcsvファイルからデータを読み込み、データテーブルに表示する前にいくつかの処理を行う次の関数があります。それは現在うまく機能JavascriptのPapa Parseを使用してリモート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();
}
このような実装は可能ですか?
これは、私がcsvファイルを提供するサーバーを制御していることを前提としています。 – indago
アプリケーションは、ホスティング会社の分散サーバーアーキテクチャのようなローカルWebサーバーWAMPに展開されていますか? ローカルPCにインストールされている場合は、wgetや任意のlinuxツールを使用してダウンロードした後、csvファイルをPHP、APACHE、および解析します。 – ThierryB
私のアプリはホスティング会社にありますが、csvファイルは別のシステムのものです。そのURLを 'http:// theip/path/theclassid'と呼ぶと、その場で生成されます。 – indago