• 締切済み

CSVデータ(5.8MB)を高速読み込みするには

JavascriptとCSVを使い、データバインドで商品検索を行うページを立ち上げましたが、5.80MBのCSVを読込むのに60~90秒かかることがあります。 JavascriptでCSVデータを早く読込むための記述はどのようにしたら良いでしょうか? 「一行で IE の JavaScript を高速化する方法 - IT戦記」も 参考にしてテストしてみたのですが、Javascript自体を高速にするものであってデータ読み込みは高速にならず、悩んでいます。 なお、URLやサイト名などは「おしえてBP! 利用規約」で個人情報漏洩の恐れがあるため、質問文章中には記載出来ないことになっているので、割愛させて頂きます。

みんなの回答

  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.3

データの転送を早くするには、いくつか方法が考えられます。 古典的(?)にはデータを圧縮する方法。 CSVのデータを何らかの方法で圧縮し、JavaScript内で展開するなど。 次に考えられるのは、Ajaxを用いて遅延読み込みする方法。 5.8Mものテキストデータをいっぺんに必要とすることがなかなか想像 できないですが、Flashなどをもちいて、Webページの部分的な更新を 検討したほうがいい気がします。

noname#94983
noname#94983
回答No.2

JavaScriptうんぬんは関係無しに、Webサイトで、5.8MBのファイルをダウンロードするのにどれだけ時間がかかるだろうか? どんなデータであれ、「それをダウンロードするのにかかる時間」より読み込みを短くすることはできない、ということはわかるのでは。それだけのデータを、サーバから送ってもらわないといけないのだから、どんなテクニックを使おうが「送るのにかかる時間」より短くはできない。 普通に考えれば、サーバ側にデータファイルから必要なデータだけをピックアップして送り返すようなプログラムを用意しておき、JavaScriptからは検索に必要な情報を送って、その結果だけを送り返してもらう、というように作るのが筋ではないかと。サーバ側は、PHPでもPerlでも何でもいいだろう。5.8MBとなると、それでも数秒(サーバ環境によっては十数秒?)はかかるような気がするけれど、まぁ我慢できない速度はないはず。 更にいえば、CSVで5.8MBというサイズを考えた時点で、普通はデータベースの導入を考えると思う。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

テキストデータの5.8Mって結構なデータですよ これをクライアント側の処理に任せるのは、いささか無責任かと。 データのフィルタや集計はサーバー側で行い、結果のみを クライアントに表示する以外、抜本的な高速化はないでしょう。 一応、ボトルネックになりそうなところは・・・ ・ダウンロードに時間がかかる ・CSVのファイルを可視化するための変換に時間がかかる ・変換されたデータを表示するのに時間がかかる どれをとってもクライアント側の環境に大きく依存します。

関連するQ&A