2017-04-23 14 views
0

大量のデータに応答する複雑なMySQLクエリがあります。その結果、このレスポンスを示すPHPページには、ページが完全にロードされる前に3分の実行時間があり、その間空白のページを待っていました...PHPの大規模なmysqlクエリの結果として長いペンディング時間を防ぐ

結果の生成を各行のようにスライスするエレガントな方法はありますかPHPスクリプトが次の行に行く前に(ループ中に)ページにエコーされます。 jQueryの非同期リクエストや他の巧妙で洗練されたソリューションかもしれません。

最後にページが読み込まれると結果が表示されるようになりますが、2〜3分かかる場合もありますが、1秒ごとにページが表示されます空白のページの前に2〜3分待つのではなく、

P.S.私はあなたのコードを実行し、次の10を得ることができます負荷次の結果(ただし、スクロールなし)

+0

代わりに、低速SQL文を最適化しようとします。 'EXPLAIN SELECT ...'と 'SHOW CREATE TABLE'を指定してください。 –

答えて

2

はあなたが各5秒後にMySQLのクエリでLIMIT句を使用することができることをスクロールダウンし、それはいくつかの画像のように遅延読み込みを動作するはずだと思うか、Facebookのようなあなたのページの行はajaxを使っています。

+1

巨大なデータと必要な列インデックスを作成する必要があるため、ページネーションを使用する必要があるため、上記のソリューションは優れているようです。上記の提案では5秒ごとにトリガするのではなく、良いようです。スクロール可能なページ区切りRefを実装することができます。https://www.thesoftwareguy.in/ajax-scroll-pagination-php-mysql/ユーザーがページに取り込み、保持する必要がないため、より多くのデータに興味がない場合。ローダーイメージを使用すると、ユーザーはデータが引き続き取得されていることを確認できます。最終的にはユーザーが上のすべてのデータを見ることができるはずですので、私はあなたが提供されたリンクを見てみましょうが、実際に私はすべてのデータが1ページにロードされ、(ないスクロールに)オンロードのロードを開始させることを必要@Senthil – Senthil

+0

単一のページですが、最初から読み込まれたデータで作業を開始し、2〜3分間保留するのではなく、 – IncreMan

関連する問題