2013-03-19 70 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);