0

codeigniter フレームワーク内で ajax を使用して、このようなコードを使用して事前定義された (既製の) テーブルにデータを挿入しています ...

    foreach ($this->results['rawData'] as $item){
            $str.="<tr onclick='document.location ='#'>"; // link to view record

            $str.='<td class="record-company-name"><input type="checkbox"></td>';
            $str.="<td>".$item->companyname."</td>";
            $str.="<td>".$item->city."</td>";
            $str.="<td>".$item->postcode."</td>";

....

            $str.="</tr>";
        }
echo $str;

テーブルには、テーブル ヘッダーをクリックしてデータのページネーションと並べ替えを提供する jquery も関連付けられています。1000 行の場合はすべて問題ありませんが、これを超えると遅くなり、5000 行を超えると、スクリプトを終了するようにブラウザーに警告が表示されます。データはあまり変化しません。

問題は、すべてのデータが一度にテーブルに注入され、jquery が処理するには多すぎることです。

ページネーションと組み合わせて毎回 1000 レコードだけを挿入することで、この状況を改善する最善の方法は何ですか。CI ページネーション クラスと memcache を併用することは良い方法ですか?

これはよくある問題だと思います。この問題に対する最善の解決策は何ですか?

すべての提案を歓迎します。

4

3 に答える 3

0

jQueryグリッドを試すことを検討してください。この問題を解決するはずであり、表形式のデータに対してさらに多くの機能を提供します。

于 2012-07-04T07:36:26.133 に答える
0

注入するということは、正しく表示することを意味しますか?バックエンドの方が高速だったとしても、ユーザーのことを考えてください。一度に 5000 行をダウンロードしています。表示されたものをダウンロードするだけではどうですか?

そのためにCIのページネーションを使用できます。データの並べ替えに関しては、CI のアクティブ レコード クラスを使用するだけで済みます。$this->db->order_by(); これがうまく機能する場合は、必要に応じて全体を AJAX 化できます。

お役に立てれば。さらにサポートが必要な場合はお知らせください。

于 2012-07-03T20:35:36.570 に答える
0

自分で codeigniter フレームワークを試したことはありませんが、文字列連結 (使用している) は通常、ほとんどの言語でパフォーマンスが低下します。代わりに JQuery テンプレートを使用するなど、別のアプローチを使用する必要がありますか?

于 2012-07-03T18:13:39.470 に答える