问题 - 网页展示了许多产品,其中一些产品使用相同的图像。
问题 - 为了提高页面加载速度,我想为每个需要相同图像的产品使用一个图像。
作为一个非常业余的PHPer,我考虑将图像加载到数组中,因为脚本循环遍历数据库输出,当找到重复的图像时,它使用图像的第一个实例而不是新版本 - 到目前为止我的尝试失败了!
这种方法是否朝着正确的方向发展? - 任何帮助,指点非常感谢
答案 0 :(得分:0)
除非你谈论非常多的图片,否则在服务器端加载这些图片会让你无处可去。
假设您只使用生成的HTML中的相同网址从您的数据库(而不是完整的图像流)获取图像网址,这将足以让浏览器只下载一次并将其缓存以备将来使用(也就是说下载两次)
P.S。:如果我认为错误,请更新您的问题,说明您如何加载/使用这些图像
答案 1 :(得分:0)
好的,在上述答案的帮助下,我似乎找到了使用以下代码解决问题的方法(它可能不是实现所需结果的最佳或最快方式,但它确实有效!):< / p>
<?php
$image=array(); // create array outside of loop
// START loop
while (!$rsRESULTS->EOF) {
$src="url-of-image";
$imageFile= file_get_contents($src) ; // make image into a file
if(in_array($imageFile,$image)){ // check if file is already in array
$imageID= array_search ($imageFile,$image); // if yes, then get the key from the matching value
$src="http://www.log-cabin.co/_images/affiliates/shedstore/".$imageID.".jpg";
}else{
$key=$rsRESULTS->Fields('id'); // set up key using unique identifier
$image[$key]=$imageFile; // if not already in array add file to array using file name as key
}
// SHOW PRODUCT RESULTS INCLUDING PICTURE HERE
// END loop
$rsRESULTS->MoveNext();
}
?>
答案 2 :(得分:-1)
2表 - media_to_product和媒体,多个产品可以拥有相同的media_id。浏览器只应加载一次并在前端缓存。
<强> media_to_product 强>
product_id,media_id
媒体强>
ID,文件名