我正在构建一个图片库,在首页显示一些图片。图像大于首页中显示的实际尺寸,这引出了以下问题:
如果缓存不是一个选项,那会更好:
使用php缩小图像并将其发送给客户端。
发送原始的完整尺寸图片并让客户缩小它(使用简单的width
和height
属性)
我倾向于认为第二种是更好的解决方案,但我希望听到更多意见。
谢谢!
编辑:
当人们上传图片时,我会创建缩略图,以便在浏览网站时显示这些图片。
“缓存不是一个选项”的原因:
讨论的图像是首页中的5个“特色”图像,最多不会超过一个小时。那么为每个上传的图像创建另一个图像副本是不是浪费?
答案 0 :(得分:1)
基本上,它取决于
通常,具有缓存的解决方案,即使是非常临时的缓存,也会好得多。
[AD编辑]
讨论的图像是首页中的5个“特色”图像 最长不超过一小时不会保持不变所以这不是浪费 为此创建每个上传图像的另一个图像副本?
是的。但您可以简单地为这些缩略图创建一个单独的文件夹,并设置一个cron作业来擦除超过一小时的文件。这是我在我的网站上使用的一个例子(设置为30分钟):
*/15 * * * * find /var/www/directory/ -mmin +30 -exec rm -f {} \; >/dev/null 2>&1
答案 1 :(得分:1)
考虑到'足够'的CPU资源,我希望在发送图像之前缩小图像,以便在连接不良和移动设备的人身上轻松实现。
另一种选择和我首选的策略是保留较小版本的图像然后使用它们。如果图像是在某个时刻上传的,则在上传时创建较小版本的图像。
答案 2 :(得分:1)
这取决于你的流量,但我会动态调整大小并保存拇指。因此,如果拇指存在,请服务它,如果没有动态调整并服务(保存拇指)。
然后在cronjob中你可以删除旧图像。
答案 3 :(得分:0)
如何3.不要在应该为客户端提供服务的过程中调整图像大小 - 让后台进程调整大小,如果调整大小则发送缩略图,如果还没有则发送完整图像。这样做的好处是可以独立于用户请求限制调整大小过程。