加载超多图片优化,加载Script出现阻塞

1.页面有大量图片需要加载,如何优化?

针对图标:
    1.精灵图/雪碧图, 一次性获取所有图标,减少Http请求
    2.采用svg | 字体图标 | 内嵌小图片(base64编码)

针对业务图片:
    1.懒加载。先加载首屏的图片,等滑动到新视图,再加载可视区域的图片。
      做法:一开始所有图片采用占位图,占位图只需下载一次,然后监听滚动事件,滚动到指定区域时,加载指定区域的图片。
    2.cdn加速。把图片放到cdn上加速,cdn保证和网站不同源,为了提高并发速度甚至可以把图片放到不同域的cdn中。
    3.按分辨率加载。不同分辨率的设备加载不同分辨率的图片,如@1x @2x
    4.针对大长图:考虑分割成多个图片加载。

    *值得注意的误区:图片的src并不会阻塞后面html的解析。(JS的加载会阻塞DOM解析,是因为JS可能修改后面的DOM和CSSOM)

2.加载script阻塞

解决方法:
1.script标签上加上 defer属性
    <script type="text/javascript" src="#" defer></script>
2.script标签上加上 async属性
    <script type="text/javascript" src="#" async></script>
3.script标签放在body标签后
4.动态创建script标签,window.onload后插入script标签

*区分:async 是加载完成后立刻执行,defer 需要等待页面完成后执行。
链表
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。