我正在加载大图像并让浏览器调整它们的大小。我明确设置大小。
<img src="http://example.com/image1.jpg" width="240" height="360"/>
页面上有很多这样的图像。滚动非常缓慢且不稳定。滚动时,chrome 中的事件时间轴看起来像这样:
Paint
* Image decode (JPEG)
* Image resize (non-cached)
* Image decode (JPEG)
* Image resize (non-cached)
* ...
Paint
* Image resize (cached)
* Image resize (cached)
* Image resize (cached)
* Image resize (cached)
Paint
* Image decode (JPEG)
* Image resize (non-cached)
* Image decode (JPEG)
* Image resize (non-cached)
* ....
Paint
* Image resize (non-cached)
* Image resize (non-cached)
* Image resize (non-cached)
* Image resize (non-cached)
Paint
* Image decode (JPEG)
* Image resize (cached)
* Image decode (JPEG)
* Image resize (cached)
* ...
等等
我不确定为什么某些 Paint 事件包括图像解码而其他事件不包括,也不知道为什么有时调整大小被缓存而有时却没有。我想这一定与进入视口的新图像有关。
有什么办法可以确保我在页面加载时只为每张图片支付一次图片调整大小的费用,并避免在滚动期间调整图片大小?
(当然,我知道最好的解决方案是通过加载已经具有适当大小的图像来避免浏览器调整大小。在这种情况下,这是不切实际的。)