2017-08-07 6 views
-1

データベースからデータを取得しています。jQuery関数$.getJSONは、htmlのgeneretesテーブルです。この関数は、単純な文字列であるinnerHTMLという変数を作成します。アレイと私のinnerHTMLプロパティを生成する方が良いだろうJavaScriptのgenereteテーブルHTML

  1. :私は単に私がちょうど実行document.getElementByID('myTable').innerHTML = innerHTML;

    私の質問があり、いくつかのループを実行し、終了時など、新しいデータやタグ<table><thead><tbody><tr><td>と、この変数を連結します?

  2. ユーザーが文字列を連結するのに十分なメモリがない場合はどうなりますか?

  3. 大きなテーブルを作成して文字列に変換する配列を作成できますか? また、私の要素の実際のinnerHTMLをサイト上で連結する必要がありますか?

私はテーブルを生成するこの方法が非常に簡単で自己説明的なので、私はそれを使用しています。しかし、データが大きくなったときにこれが記憶上の問題になるかどうかは本当に分かりません。これは今はうまくいきますが、将来何が起こるのでしょうか?

UPDATE

私はトリックを行うために別の方法を使用していました。文字列または配列を拡張することが要求されるループでは、必要なテーブルのすべての要素を作成するためにappendChildを使用します。

+0

ArrayまたはStringのどちらを使用するかは関係ありません。データ量が同じ場合、両方とも同じメモリを使用します。そのようなシーンを処理するために、アプリケーションに遅延読み込みやページネーションを追加してみてください。 innerHTMLオブジェクトに一度にデータ全体をロードしないでください。また、配列操作を試したい場合は、処理のために同じデータのコピーのメモリ使用量を減らすMori.jsまたはImmutable.jsを試してください。 – Ashvin777

答えて

0

データが非常に大きくなると、一度にいくつかの行を追加してから、ネットワークが空いているときやユーザーが要求する行が増えたと考えるかもしれません。

スピードに関しては、DOMの内容を動的に変更することが可能な最速の方法を選択したと思いますが(データ全体を連結しないでjQueryを使用するのと比べて)、データが大きくなるとかなり可能性がありますあなたのアプリケーションがあなたのカスタムウェイを使用する際に読みやすさにこだわることがあります。

関連する問題