0
我有以下函數可以從遠程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
您的應用程序是否部署在本地網絡服務器WAMP上或從託管公司的分佈式服務器體系結構上? 如果是在本地PC上安裝PHP,APACHE並使用wget或任何Linux工具下載後解析csv文件,則您更喜歡。 – ThierryB
我的應用程序位於託管公司,但csv文件來自另一個系統,當您調用該URL時,通常會生成csv文件,例如'http:// theip/path/theclassid' – indago