2017-04-23 25 views
0

我有複雜的MySQL查詢來響應大量數據,因此顯示此響應的PHP頁面處於未決狀態(DevTools),只要2- 3分鐘的運行時間,頁面完全加載前,我已經能夠看到內容,同時等待其空白頁...由於mysql中的大量查詢結果,防止了很長的掛起時間php

有沒有一種優雅的方式來切片結果代像每一行會在php腳本進入下一行(while循環)之前被回顯到頁面。可能是jQuery異步請求或其他聰明優雅的解決方案。

因此,最終我將能夠開始看到頁面加載的結果,它可能需要相同的2-3分鐘的加載,但每秒(例如)我會看到更多的行回顯頁面,而不是在空白頁面前等2-3分鐘。

P.S.我認爲它應該像一些圖像延遲加載或類似Facebook向下滾動加載下一個結果(但沒有滾動)

+0

相反,我們試着優化慢SQL語句。請提供'EXPLAIN SELECT ...'和'SHOW CREATE TABLE'。 –

回答

2

你可以每次5秒鐘後,使用限制條款在MySQL查詢您可以運行代碼,並獲得未來10使用ajax的頁面上的行。

+1

上述解決方案看起來不錯,因爲您需要使用分頁,因爲數據量巨大,需要創建所需的列索引 - 因此可以更快地檢索數據。在上面的建議看起來不錯,但不是每5秒觸發一次。你可以在這裏實現可滾動分頁引用:https://www.thesoftwareguy.in/ajax-scroll-pagination-php-mysql/因爲如果用戶對更多的數據不感興趣,比不需要檢索並保存在頁面中。使用裝載器圖像,所以用戶將會等待數據仍在檢索中。 – Senthil

+0

@Senthil我要看看你所提供的鏈接,但實際上我需要的所有數據被加載到一個網頁,並開始加載的onload(不滾動),因爲最終用戶應該能夠看到的所有數據單個頁面,但他/她將開始處理在開始時加載的數據,而不是等待2-3分鐘。 – IncreMan