php - 服务器端图像大小调整性能

标签 php html

我从越来越多的大网站(谷歌、Facebook、Youtube 等)注意到他们正在调整图像大小以“接近”客户端所需的测量值,我想知道这是否是人们方式的转变正在思考或他们很懒惰。

假设为一组产品(电子商务)以特定尺寸向一组标准图像添加新的图像尺寸,这些产品的数量可达 100 到数千,甚至数百万。

假设我有一份原始图像的副本,大小为 300x350 或其他大小,然后在客户端将其大小调整为 200x250。我为页面上的 20 个产品的每个产品执行此操作。

服务器端适应这种新尺寸的工作和问题真的值得让客户端受益吗?

如果不是,那么判断何时应该预处理特定尺寸的好方法是什么?

如果是,服务器端处理和缓存是否有时会变得过大(即容纳 110x220、120x230、150x190 等 8 张图像)?

最佳答案

考虑以下内容: 图像大小调整是服务器的繁重过程。它首先本身就很昂贵。其次是硬盘驱动器 IO 操作,速度非常慢。所以这完全取决于您的服务器的负载情况。

对于客户来说,它在两个方面很重要:

1) 缩略图的文件较小,因此下载速度更快。所以他们会出现得更快。但这一切都取决于互联网连接的速度,而互联网连接的速度每天都在增加。你见过加载多大的图像吗?它们不会一次全部显示,而是按“线”显示

2) 如果您尝试以小尺寸显示大图像,质量会低很多。这是因为浏览器如何处理它。他们没有 Photoshop 的功能,无法进行适当的质量调整。

3) 单个页面上的许多大图像会增加该页面的内存使用量。在一些不太强大的计算机上,滚动打开时可能会出现严重的延迟。

作为这个问题的解决方案,我更倾向于做我在 Drupal 模块之一(imagecache 如果我是对的)看到的事情。

它不会在图片上传时创建缩略图。相反,它使用 .htaccess 和 mod_rewrite 功能在请求时创建它们。它检查请求的文件是否不存在,如果不存在,它将请求重定向到小型轻量级 PHP 脚本,该脚本将创建缩略图,将其写入文件系统,然后输出到客户端。

因此下一位访问者将已经获得之前创建的缩略图。

因此您实现了延迟/延迟图像大小调整,这将使加载更平滑(及时拉伸(stretch))。

关于php - 服务器端图像大小调整性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13529923/

相关文章:

javascript - 浏览器无法读取 PHP 生成的 CSS 文件

PHP $_GET 安全、$_POST 安全最佳实践

php - 快速简便的防洪措施?

php - python到php的转换

html - 为什么 CSS 的显示方式不同,即使对于完全相同的元素也是如此?

php - UTF-8 内容类型元标记会减慢页面加载速度,为什么?

javascript - 如何阻止 jQuery 悬停事件应用 css 文本阴影?

php - 如何使用 .htaccess 创建干净的 url

javascript - Angular,如何在多个页面而不是在一个大列表中显示 *ngFor

javascript - 如何在每次鼠标悬停事件时更改单个 div 的颜色?