为什么new Image()后,没有用src赋值?也可以预加载?

来源:2-3 实例1图片相册之使用预加载

jylrc

2017-07-12 08:17

为什么new Image()后,没有用src赋值?也可以预加载?

写回答 关注

5回答

  • 慕移动9181930
    2022-03-27 12:14:27

    我也是,建议用手机的离线功能,先都离线下来,然后随便看.

  • CaffreyGo
    2019-10-16 16:57:23

    放一张高程的正确解释

    http://img2.mukewang.com/5da6db630001ab3906680617.jpg

  • qq_面码_2
    2018-03-25 21:33:50

    这个原因我查过,那就是防止有的图片已经缓存过了,防止onload的事件的function还没传给onload时,就已经加载完了,导致onload事件根本没发生。这是比较好理解的,还有说图片是什么异步的js是同步的。

  • chendidi
    2017-08-01 22:09:58

    当imgsObj.src = 图片路径的时候,已经就是在实现图片缓存功能了

  • 望雨D男孩
    2017-07-16 11:52:49

    new Image()之后,先绑定load和error的事件,然后赋值src,才会触发之前绑定的事件,所以事件绑定要在前面,仅供参考

    ffg_疯疯... 回复jylrc

    js内部是按顺序逐行执行的,可以认为是同步的 给imgae赋值src时,去加载图片这个过程是异步的,这个异步过程完成后,如果有onload,则执行onload 如果先赋值src,那么这个异步过程可能在你赋值onload之前就完成了(比如图片缓存,或者是js由于某些原因被阻塞了),那么onload就不会执行 反之,js同步执行确定onload赋值完成后才会赋值src,可以保证这个异步过程在onload赋值完成后才开始进行,也就保证了onload一定会被执行到 ----------**以上摘自网上答案**-------- 还有一个问题据说在IE上如果src写在前面会报错

    2017-10-11 15:37:14

    共 2 条回复 >

图片预加载

预知发生的行为,提前加载需要的图片,获得更好的用户体验

40980 学习 · 81 问题

查看课程

相似问题