我从数据库/远程服务器获取应用程序中的许多缩略图,并将它们加载到列表视图(ul)中。 当有大约100个缩略图时,网页的整体下载速度是合理的,但是当我获取大约250+缩略图时,整体下载速度明显变慢......
我知道我可以使用分页,但在我的情况下,这不是一个选项......
我最终获取的缩略图总数约为500 ...它不会更高......
我的问题如下:
有没有办法可以加速我的应用程序中的缩略图获取?我听说可能在文件中缓存缩略图然后调用该文件......这是最好的解决方案吗?如果是的话,有人可以就这个问题指导我......
任何提示?提前谢谢。
马
如何使用我读过的东西...类似于以下方法:
$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();
}
是推荐的方法吗?
答案 0 :(得分:0)
当用户向下滚动页面时加载缩略图。 使页面动态化,当用户位于底部时,您可以加载更多4行缩略图。
你正在做的事情可能是使用了其他服务器的大量不必要的带宽,因为用户可能看不到页面底部的最新缩略图。
答案 1 :(得分:0)
一种方法是将所有不需要相同大小或方向的拇指收集到一个巨型img中,然后下载该图像而不是250个图像。然后,为了显示拇指,您可以在其x和y轴上将巨型img定位为背景图像:,以便您想要的精确缩略图显示为您想要的背景图像。然后,每个图像的数据库单元格只包含拇指的大小(可能),方向(也可能),以及巨型图像上目标缩略图的x / y坐标。
阅读css background-image了解更多信息。
- 皮特
答案 2 :(得分:0)
为什么分页不是一种选择?我认为这是最好的选择,因为所有浏览器都可以使用它而不是动态页面ajax加载。
图像是否在不断变化?如果没有创建静态页面。
下一个选项是你所说的,缓存图像。但是,这将获得创建静态页面所需的相同技能。
另一种选择是缓存页面。您可以估计页面图像发生变化的频率,并将其用作生命周期。一个好的,快速简单易用的工具是php pear的cachelite。 有了这个,你总是可以加载500张图像。 改进之处在于为页面提供较长的生命周期,并在页面加载时检查数据库中的更改。您可以重建缓存或提供缓存页面。