众所周知,如果我们在width
元素中指定height
和<img />
属性,浏览器可以在呈现的布局中立即定位图像。这不是一个非常大的速度提升,但它是非常好的优化实践。
好的,但有时图像有不同的尺寸。所以我们可以通过PHP getimagesize()
函数来获取它。
这是一个问题,如果我们没有具体的维度,那么使用PHP值得吗?当然,我们必须编写额外的代码,但是如果我们处理库,我们总是使用PHP,所以在这种情况下它只有2行代码。
您有什么看法?
答案 0 :(得分:0)
这取决于你想要做什么。在<img/>
标记上添加维度的好处是:
另一方面,添加尺寸会增加页面大小并导致您使用更多带宽。
答案 1 :(得分:0)
你必须意识到getimagesize会导致I / O读取(除非你从db中读取blob,然后就可以了)。因此,您只需加载I / O读取加载图像。计算机通常足够快,以至于计算浏览器图像的宽度和高度并不是一个问题。
然后,您还有其他优化场所:
我认为一般来说,实施这一点是不切实际的,因为它会产生更优化效率低下的效率。
答案 2 :(得分:0)
好吧,我从不打扰。坦率地说,大多数网站都没有打扰。问题是浏览器不需要下载整个图像来获得它的尺寸。大多数图像格式在文件的标题中具有图像大小。所以一旦浏览器获得文件的前几个字节,它就已经知道尺寸是多少。
答案 3 :(得分:0)
函数getimagesize()尝试在每次调用PHP时从文件中解析图像大小。所以基本上没有一个磁盘寻找你有两个(加解析 - 如果你解析一些巨大的视频文件而不是图像,它可能是几秒钟)。
我个人有一个CMS只在图像上传时读取图像大小,然后将其与其他数据一起保存在DB中,因此不需要额外的磁盘访问。当然这对你来说可能有点过头了 - YMMV。
最好的建议:测试一下。这是一个简单的测试,它将为您提供最相关的答案。