默认情况下,浏览器同时加载文本和图像。同步。这看起来不错,因为它在加载完成后为用户提供了完整的体验。
但是如果你遇到这样的情况怎么办:
<p>some intro text</p>
<img src="big_and_expensive_img_to_load" />
<p>text with very imporant info for the user</p>
这意味着用户需要等到大图像加载才能看到紧随其后的重要段落。
为了防止这种情况,我们可以使用:
<img src="very_and_expensive_img_to_load" decoding="async" />
该decoding="async"
属性将告诉浏览器可以稍后进行图像解码,这样即使图像未完全加载,浏览器也可以继续显示内容。
该decoding
属性有 3 个可接受的值:
- sync:只有在图像准备好后才会继续渲染;首选“完整体验”
- async:继续渲染,一旦图像解码完成,浏览器将更新呈现;
性能首选 - auto:会让浏览器执行它确定的最佳方法(不确定由谁决定)
该decoding
属性可以在任何主流浏览器中使用,当然IE除外。
PS:我们还可以使用延迟加载来提高图像性能。