質問: 現在、プログラムを勉強中の初心者です。 ローカル開発環境にて勉強目的でmysqlにデータを保存して htmlにてmysqlのデータを呼び出して表示するというサイトを作成しています。 そこで今回、呼び出したデータをテーブルにして表示する際に 「ページネーション」を設置する事にしました。 ネットで色々と調べていると jqueryを使用したものだと設置が簡単という事もあり Bootstrap Data Tableを利用する事にしました。 簡単に設置できると説明があった通りに 何も問題なく設置する事が出来たのですが・・・。 IEで表示してみると「遅い・重い」のです。 開発環境のchromeだと普通の速度で表示されていたのですっかり油断してしまいました。 現在表示しているのが「3000件のレコード」を8種類の条件で表示したテーブルをindex.phpにて 8個表示して、それぞれに「ページネーション」を設置しています。 この状態でこれだけ遅いとなると 今後、数万件のレコードとなってきた時に動作の重さが尋常ではなくなってしまうのでは?と不安に思います。 そこで今回お聞きしたいのは jqueryでページネーションを設置するのと phpでページネーションを作成していくのは「どちらが軽い」のかという事を教えて頂きたいです。 私が普段利用させて頂いている情報系サイトだと記事の数が普通に数万、数十万とあるのに 表示が軽かったりするので phpを利用したページネーションだとjqueryに比べて動作が速いのでは?と考えて質問しました。 今の段階では phpでページネーションを設置するだけの技術力が無いので phpの方が軽いという事でしたら 作り方からネットで調べて実装できるように勉強をしていきたいと思います。 jqueryの方がphpよりも軽かったり、 動作が基本的に大差ないという事でしたら もっと軽いプラグインやライブラリを調べてみようと思います。 初心者なので基本的な質問となってしまいましたが、 今後の勉強の方針を決める参考にさせて頂けたらと思いますので 教えて頂けると嬉しいです。
回答: jQuery によるページネーションは、全データを持ってきてからクライアント側でページネーションします。 一方、PHP などのサーバサイドでページネーションする場合、クライアントには実際に表示するためのデータしか渡されません。それどころかサーバサイドで LIMIT や OFFSET を使い、DB から取得するデータそのものも最小限に抑えられるのがほとんどです。 つまり、ハナからデータ量が桁違いなのですから、この場合 jQuery に勝ち目はないのです。 ※jQuery でも、ajax で取得するデータそのものを最小限にできるならそれほど違いは無くなりますが PHP を素で使うとページネーションは面倒に思えますが、CakePHP などのフレームワークを使えばページネーションはほぼ標準で装備されている機能ですから、導入も簡単だと思います。またフレームワークを導入できないにしても、DB から取得するデータそのものをきちんと最小限に抑えるようにすればよいので、決して難しくはありません。