2011-12-18 16 views
1

私はサーバーからajaxを使って大量のデータを取得し、JavaScriptに格納しなければなりません。私は現在、すべてのデータを格納する配列を使用しています。この私がデータを取得し、JavaScriptでそれを格納する方法である:大量のデータをjavascriptに保存する方法

var buffer=new Array(); 
//when each ajax returns 
buffer=buffer.concat(JSON.parse(ajaxReq.responseText)); 

私の心の中で二つの質問があります。

  1. は、効率的なすべてのデータを格納するための配列を使用しているが、オーバーフローの問題があります100万行のデータがありますか?
  2. concatのパフォーマンスはどのようなものですか?どうすればここで最適化できますか?

ありがとうございます。

+1

この質問は役に立つかもしれません:http://stackoverflow.com/questions/4833480/is-this-asking-too-much-of-a-browser –

+0

私はあなたが何も考えていないので、それを避けるでしょうさまざまなクライアントマシンが何をするか、または処理できるか。私はそのデータをブラウザ*に入れておきたいという妥当な理由は考えられません。私は、サーバーに処理をオフロードする方法をセットアップします。 –

答えて

3

すべてのページロード時にデータベース全体をクライアントにダンプするように見えるので、特定のページの読み込み時に、迅速なajax応答を待つ必要はない場合があります。これは正に、私が今までに聞いたことのない最も狂気なことです。うまくいけばそれをよく見ることができます。

あなたのユーザーが実際には長時間かかることのない小さなAjax呼び出しを待つ必要はなくても(google autosuggestを見てください)、100万のデータベース行が転送され、 pageloadはさらに悪いユーザーエクスペリエンスです。

あなたのデータはlocalStorage(5MB)に収まる場合にのみ実行可能ですが、実際にはそうではありません。

+0

サーバーからデータを要求するときに(断続的に)代わりに、そのデータに対する操作をほとんど処理できないクライアント、操作全体を悪化させる操作はもちろんです。 –

+0

ok ,,, 5MBは知っておくと良い数字です。ありがとう。 – bingjie2680

8

私はダウンフォートを危険にさらしていることは知っていますが、「JavaScriptで100万行を保存するにはどうすればよいですか」という唯一の答えは「しない」です。

+0

ありがとう、私はあなたのポイントを参照してください。 Ajaxの取得には時間がかかります。ユーザーはデータを処理する際にブレークポイントを観察します。私は良いユーザーエクスペリエンスを作りたい。 – bingjie2680

+0

私は同意するでしょう。 @ bingjie2680では、必要なものをできるだけ効率的にキャッシュして呼び出す方法を見つけ出す方がよいでしょう。 –

+2

私は何百万ものjavascript配列を格納しません。だから私はdef。この別の方法を解決するための作業 –

関連する問題