2017-08-05 17 views
0

私は、JavaScriptの大規模なデータセットを扱うための最良の戦略を見つけようとしています。私は100ms間隔で4時間のデータを読み込んだファイルを持っています。javascriptで大規模な配列を扱う方法

これは1次元配列になりますが、すべてを一度に読み込むことはできません。私はそれをより小さな配列に分割しようとするべきです、そして、最適な配列サイズはありますか?

私はこの種の問題に対処しなければならないのは初めてのことです。配列の中には500kbしかありませんが、1つのモジュールの書き出しとしてロードされません。何らかの理由でAJAXがうまく動作しますか?もしそうなら、なぜですか?

+2

これはブラウザまたはNodejsですか?また、あなたのコードを含めてください。 – Svenskunganka

+0

ネットワークを介してデータを取得するには、必ずバッチサイズを使用する必要があります。 –

+0

おそらくウェブワーカーとソケット – JGFMK

答えて

1

fetch().getReader()のプロパティはResponseで、ReadableStreamが返され、データをストリームとして読み取ることができます。

fetch("/path/to/server") 
.then(response => response.body.getReader()) 
.then(reader => { 
    const processStream = ({done, value}) => { 
      if (done) { 
      return reader.closed; 
      } 
      // do stuff with `value`:`Uint8Array` chunk of data 
      return reader.read().then(processStream); 
     } 
    return reader.read().then(processStream);     
}) 
.then(() => "done reading stream") 
.catch(err => console.error(err)); 
+0

@MFave 'ReadableStream'を' .pipeTo() 'を使って' WritableStream'インスタンスにパイプすることもできます。[stdinでデータを受け取り、変数/配列として保存する](https://stackoverflow.com/q/)を参照してください。 45427642 /) – guest271314

関連する問題