2017-01-04 11 views
0

私はCSVファイルからデータを表示するためにdatatablesを使用しています。ファイルの行数は60kです。明らかに離れているすべての作品は、明らかに表示に長い時間(70秒以上)がかかります。大きなCSVファイルのDataTables

<?php 
$result = []; 
if (($handle = fopen("SO.csv?id=2", "r")) !== FALSE) { 
    while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $cols = array($row[0], $row[1], $row[2], $row[3]); 
     $reset = false; 
     echo '<tr><td>'.$row[0].' </td><td> '.$row[1].' </td><td> '.$row[2].' </td><td> '.$row[3].' </td></tr>'; 
    } 
} 
?> 

明らかにサーバー側では理想的な選択肢になりますが、私はCSVからの読み取りながら、それを組み込むだろうかどうかはわかりません。

提案がありますか?その他のツール/スクリプト?

+0

単純にエコー出力をhtmlファイルに保存してから直接開いてください –

+0

これは60k行であっても遅いです – pee2pee

+0

これは1ページビューに適しています...使用する必要があるすべてを表示したい場合より高度なメカニズム...たとえば、データをページに分割することができます。最初のページを送信し、クライアント側からajaxを使用して残りを非同期的に送信します。または、wordpressのようなSQLデータベースのフレームワークを使用します。 –

答えて

1

CSVデータを返すPHPスクリプトを作成し、そのデータをajax optionでデータセットにロードしてみてください。その後、テーブルにページを設定して、deferRenderオプションを使用します。これにより、Datatablesは必要なときだけ(つまりページを変更するときに)HTMLノードを作成します。

これは初期ロードをかなり速くするはずです。

+0

CSVファイルをデータベースに変換し、サーバー側の処理モードを使用する以外に、 'ajax'または' data'オプションで 'deferRender'を使用するのが最良の方法です。 –

関連する問題