2016-04-29 5 views
1

は現在、私は、ページに、私はデータベースを照会して、jQueryのDataTableのを使用して結果を表示するためのテーブルを作成しますが10,000レコードを持つページが遅くなり始めている、ウェブサイトのためのCodeIgniterを使用しています問い合わせます約5秒間ロードする。 私の質問は、コードニターのページネーションライブラリを使用して、リクエストごとのレコードを小さくする方が良いでしょうか?のDataTableまたはPHPのページネーションは

どのようにこの問題を処理するかに関する提案はありますか?

ありがとうございます!

+0

明示的にオフトピックである意見を求めています。 –

+0

フィードバックをいただきありがとうございます。Marc B.素晴らしい一日を! –

+0

あなたが使用しているcodeigniter用のデータベースのバージョンは?私はCodeigniter 3のためにこのバージョンのhttps://github.com/zepernick/Codeigniter-DataTablesを使い始めています。それは非常に高速です。 – cartalot

答えて

0

[OK]をみんなは、まず、それが将来のためのソリューションおよび他の可能なもののための方向に私を得たご回答ありがとうございました。

のDataTableのサーバー側の処理:

これは私が問題を解決する方法です。 私のテーブルは平均5秒でロードされ、0.0798秒でロードされました。ここで

は、名前をファイルssp.class.phpで新しいライブラリを作成するだけで、あなたのコントローラ内の関数で(コメントを読む)サンプルコードを使用し server side processing を使用して上のドキュメントへのリンクであることSsp.phpその後、ちょうどこれまで偉大な作業を、私はCodeIgniterのフォーラムに完全なチュートリアルを掲載する予定 $this->load->library('Ssp');

を使用して、コントローラ上でそれをロードします。

+0

それは素晴らしいでしょう。ちょうど私はライブラリに私がリンクされている - 17,000以上のレコード - デフォルトのページが即座に開きますで働いているアプリに戻りました。レコードの検索と検索はリアルタイムで行われます。ページの結果はテキストだけではなく、5つの検索可能な列、フォーム、送信ボタンなどの2つの列 – cartalot

0

はい、要求ごとに、レコードの小さな塊を取得するためにページネーションライブラリCodeIgniterの使用する方がよいでしょう。データフィルタリングと混合遅延ローディング技術のかゆみのページネーションを使用

は、より良い、より洗練されたアプローチであろう。

+0

別のWebサイトでは、ページングの問題が発生する可能性があることがわかりました。なぜなら、各レコードセットごとにリクエストを行う必要があるからです。ロード時間とデータベースヒットを犠牲にして混乱します。 –

+0

実際にはレイジーローディングアプローチの背後に大きなメカニックがあります。カスタムローディング手法を指定できます。 ユーザーがpaginationTemplateを押すと、メインメモリからデータを取得できます。 たとえば、メモリ内のリストにデータを保存して、実際のdataSourceを模倣することができます。 – abdessamed