js图片加载

JavaScript010

js图片加载,第1张

1.onerror

2.onload

浏览器有缓存机制

加快资源访问速度 降低服务器压力

原理:

通过页面加载开始先给图片对象一个 占位图

将实际的图片属性放在自定义属性 data_url 里面

(1)方法 1 <script type="text/javascript ">var obj=new Image()obj.src="http://www. phpernote.com/uplo adfiles/editor/20110 7240502201179.jpg"obj.onload=function()

  { alert('图片的宽度为: '+obj.width+'图片的 高度为:'+obj.height)document.getElemen tById("mypic").innner HTML="<img src='"+this.src+"' />"

}

</script>

<div id="mypic">onloadi ng......</div>

方法 2

<script type="text/javascript ">

var obj=new Image()obj.src="http://www.phpernote.com/uploadfiles/editor/201107240502201179.jpg"

obj.onreadystatechange=function(){ if(this.readyState==" complete")  alert('图片的宽度为: '+obj.width+'图片的 高度为:'+obj.height)document.getElementById("mypic").innner HTML="<img src='"+this.src+"' />"

}

}

</script>

<div id="mypic">onloadi

意义

懒加载(LazyLoad) 是前端优化的一种有效方式,能极大的提升用户体验,图片加载是其重点,如果加载图片过多将大大增 http请求次数或大小 ,然而更多时候 用户并不会浏览到全部加载进来的图片 ,这种代价是非常不值得的,所以当用户 浏览到当前视口时再去加载相应的图片 无疑是两全其美的选择

原理:只有 img 标签中的 src 写入了图片的地址,加载页面时才会请求图片,所以使用懒加载时在 src 中并不写入任何地址,把图片的真实地址放到 data- (标签内部属性可存数据) 属性中,在 js 中绑定鼠标滚动事件,其回调中遍历所有图片并作出判断, 将出现在视口中的图片的 'data-' 属性保存的地址放到 'src' 中即可

实现

HTML: