获取缩略图时降低网页的整体下载速度......怎么样?

时间:2011-03-09 22:15:58

标签: php mysql thumbnails

我从数据库/远程服务器获取应用程序中的许多缩略图,并将它们加载到列表视图(ul)中。 当有大约100个缩略图时,网页的整体下载速度是合理的,但是当我获取大约250+缩略图时,整体下载速度明显变慢......

我知道我可以使用分页,但在我的情况下,这不是一个选项......

我最终获取的缩略图总数约为500 ...它不会更高......

我的问题如下:
有没有办法可以加速我的应用程序中的缩略图获取?我听说可能在文件中缓存缩略图然后调用该文件......这是最好的解决方案吗?如果是的话,有人可以就这个问题指导我......

任何提示?提前谢谢。

EDITED

如何使用我读过的东西...类似于以下方法:

$cache = 'cache/thumbnails.cache.php';

if (!file_exists($cache)) { // check also for the expiration date

   echo "this is a cached copy... <br />";
   include($cache);

} else

   // start the output buffer
   ob_start();

   // INSERT php script to show thumbnails...

    $fh = fopen($cache, 'w+') or die ('Error...');
    fwrite($fh, ob_get_contents());
    fclose($fh);

    // send the output to the browser
    ob_end_flush();

}

是推荐的方法吗?

3 个答案:

答案 0 :(得分:0)

当用户向下滚动页面时加载缩略图。 使页面动态化,当用户位于底部时,您可以加载更多4行缩略图。

你正在做的事情可能是使用了其他服务器的大量不必要的带宽,因为用户可能看不到页面底部的最新缩略图。

答案 1 :(得分:0)

一种方法是将所有不需要相同大小或方向的拇指收集到一个巨型img中,然后下载该图像而不是250个图像。然后,为了显示拇指,您可以在其x和y轴上将巨型img定位为背景图像:,以便您想要的精确缩略图显示为您想要的背景图像。然后,每个图像的数据库单元格只包含拇指的大小(可能),方向(也可能),以及巨型图像上目标缩略图的x / y坐标。

阅读css background-image了解更多信息。

- 皮特

答案 2 :(得分:0)

为什么分页不是一种选择?我认为这是最好的选择,因为所有浏览器都可以使用它而不是动态页面ajax加载。

图像是否在不断变化?如果没有创建静态页面。

下一个选项是你所说的,缓存图像。但是,这将获得创建静态页面所需的相同技能。

另一种选择是缓存页面。您可以估计页面图像发生变化的频率,并将其用作生命周期。一个好的,快速简单易用的工具是php pear的cachelite。 有了这个,你总是可以加载500张图像。 改进之处在于为页面提供较长的生命周期,并在页面加载时检查数据库中的更改。您可以重建缓存或提供缓存页面。