2016-08-17 10 views
3

リモートcsvファイルからヘッダだけを抽出する必要があります。papa解析を使用してリモートcsvファイルからヘッダを取得

次のように私の現在の方法は次のとおりです。

パパの解析は、データをストリームと偉大である個々の行を見ての方法を持っている、と私は(parser.abortを使用して、ストリームを終了することができます)、それはどんな行く防ぐためにさらに、最初の行の後に、これは次のようになります。

Papa.parse(csv_file_and_path,{header:true, worker:true, 
    download: true, 
    step: function(row, parser) 
    { 
     //DO MY STUFF HERE 
     parser.abort(); 
    } 
}); 

これは正常に動作しますが、私は、リモートファイルを使用していますので、それを読むためにデータをダウンロードする必要があります。最初の行が解析された後、コードがブラウザに制御を戻しても、解析が最初の行を見つけて、必要な情報を与えた後、ダウンロードが長く続きます。特に、ダウンロードが長時間続く私が必要なものを得た後の時間。

これを行うより効率的な方法はありますか?ファイル全体のパーザ解析からのダウンロードを防止できますか?

私は

Papa.parse(csv_file,{header:true, 
download: true, 
preview:1, 
complete: function(results){ 
    //DO MY STUFF HERE 
} 
}); 

を使用して試してみました。しかし、これは同じことを行い、それがファイル全体をダウンロードしますが、最初の行が解析された後の最初のアプローチのようにブラウザに制御をバックできます。

答えて

1

ソリューションは、私の元の質問に非常に似ています違いは、私が打ち切り、記憶を完了してクリアすることです。

次の方法を使用すると、ファイルの1つのチャンクだけがダウンロードされ、大きなファイルの帯域幅のオーバーヘッドが大幅に削減されます。最初の行が解析された後もダウンロードが続かないためです。

Papa.parse(csv_file,{header:true, 
    download: true, 
    step: function(results, parser) { 

     //DO MY THING HERE 

     parser.abort(); 
     results=null; //Attempting to clear the results from memory 
     delete results; //Attempting to clear the results from memory 

    }, complete: function(results){ 

     results=null; //Attempting to clear the results from memory 
     delete results; //Attempting to clear the results from memory 

    } 
}); 
0

あなたはPapaParseのプレビューオプションを使用することができます。https://github.com/mholt/PapaParse/issues/47

関連トピック:

Papa.parse(..., { 
      preview: 5, ... 

もこれを読んで私が思い付いたJavascript using File.Reader() to read line by line

+0

プレビュー方法は機能しません。既にテスト済みであるため、私はこのことについて言及しておきました。質問を更新します。プレビューは、ファイル全体をダウンロードするのを止めていないようですが、それはテストしましたが、そうではありません。 –

+0

それは私のために働く、多分私達は別のバージョンを使用して、最新のものを試してみてください。それは明らかに私のための大きいCSVファイルのブラウザをフリーズしますが、プレビューではフリーズしません。また、Firefoxを使ってこれをテストしました。 –

+0

ええ、今日は自分でテストしましたが、オリジナルの方法と同じようにブラウザを解放するという意味では機能しますが、その後はバックグラウンドでダウンロードを停止するようには見えません。ネットワークの使用状況を監視して、検索されたファイルのサイズを確認しましたか?私の場合、ファイル全体をバックグラウンドでダウンロードします。 –

関連する問題