js图片预加载的疑问

<div class="s1"></div>

    <script type="text/javascript">
        var tyu = document.getElementsByClassName('s1')[0]
        tyu.onclick = function(){
            var ase = new Image();
            ase.src = 'ima/KcR8-htwhfzt1608509.jpg';
            if(ase.complete){
                alert('ss')
            }
            ase.onload = function(){
                alert('sa')
            }
        }
        
        
    </script>

这两天学习图片预加载之后的一些疑问。网上有人说要把img.onload放在src前面这样才能保证被执行尤其是在ie下要是放在src后面不会被执行,但是我测试过在ie下onload放在src后面也能被执行而且连续打开数次都能被执行。还有这个complete属性到底 是判断图片加载的还是判断图片是否显示出来的??懂得大神们帮忙解释一下。网上说的一些都不对呀!!

阅读 1.5k
1 个回答

image.src赋值后就开始异步加载,我觉得可能是image.onload放在后面依然被执行可能是图片的加载速度和程序执行速度的原因,如果图片加载在执行image.onload赋值语句之前完成,则赋值给onload的回调不会执行,如果图片加载在image.onload赋值语句之后完成,则此时赋值给onload的回调就会执行。所以规范点话,image.onloadimage.onerror都会放在image.src之前.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题