2013-03-19 92 views
1

我正在使用while循環來顯示最後30個專輯縮略圖,但正如你所知30張照片一次會減慢網頁加載時間si我想要一旦網頁完全加載我想加載這30張照片間隔5秒。前5張照片將被加載5秒後,網頁完全加載,然後再次5秒後的差距5張照片將被加載我知道我可以做到這一點與6查詢,但爲什麼浪費服務器資源,所以我想要一個查詢,但加載爲每用戶convenient.here是我while循環雖然循環輸出延遲

 $res = mysql_query("SELECT * from `"tableA where cat='photos' order by created desc limit 30"); 
    while($row = mysql_fetch_array($res)) { 
    $photo .= thumbnail($row,150); 
     } 

之後無論我想我可以調用$照片

回答

1

你應該輸出包含圖像或數據的任一網址,一些標記,從Javascript可以通過重新網址,然後,在客戶端,您可以處理從該標記中即時創建圖像,延遲時間和內容。

2

做到這一點的最好方法是使用javascript(和jQuery以獲得額外的緩存)。例如,查看這個Lazy Loading jQuery插件。

1

試試這個..我也固定在查詢了一下報價..

<?php 
$round =1; 
$res = mysql_query("SELECT * from `tableA` where `cat`='photos' order by created desc limit 30"); 
    while($row = mysql_fetch_array($res)) 
    { 
     $photo .= thumbnail($row,150); 
     if (($round % 5) == 0) { // action only happens when round is divisble by 5 
      sleep(5); // wait 5 seconds 
     } 
     $round += 1; 
    } 
?> 
+0

我想這樣的事情讓我檢查它是否有效與否 – tumbinkya 2013-03-19 16:47:33

+0

所有的照片都被沒有任何延遲加載 – tumbinkya 2013-03-19 16:53:51

+0

我一直在尋找答案..我認爲一些評論者是正確的..你可能需要一個前端的方式來做到這一點.. – Mustapha 2013-03-19 17:02:34

1

在你的情況,所以你不能指望在頁面顯示給用戶,只有在所有PHP被處決在PHP上延遲一些顯示。

正如已經提到的,你必須做它的客戶端(可能在Javascript中)。 一種方法是構建(使用PHP)一個包含所有圖像URL的Javascript數組,然後以適當的延遲循環遍歷這個數組。

服務器端將是這樣的:(編輯:假設表A中包含一個名爲「網址」列)

$images = array(); 
$res = mysql_query("SELECT * from `tableA` where cat='photos' order by created desc limit 30"); 
while($row = mysql_fetch_array($res)) { 
    $images[] = $row['url']; 
} 
echo json_encode($images);