图片延迟加载

网站性能优化:尽量减少向服务器请求的次数 “减少HTTP请求”:

a、CSS/JS文件进行合并
b、ICON图片也进行合并--->雪碧图
c、图片的延迟加载
d、数据的异步加载
e、在移动端,若做一个“简单的”宣传页,尽量把js和css写成内嵌式

图片延迟加载

作用:

保证页面打开的速度(3s之内如果首页打不开就死了)

网站性能优化:尽量减少向服务器请求的次数 “减少HTTP请求”。(CSS/JS文件进行合并

原理:

a、对于首屏内容中的图片:首先给对应的区域一张默认图片占着位置(默认图需要非常小,一般可以维持在5kb以内),当首屏内容都加载完成后(或者也可以给一个延迟的时间),再开始加载真实的图片

b、对于其他屏中的图片:也是给一张默认的图片占位,当滚动条滚动到对应区域的时候,再开始加载真实的图片

扩展:数据的异步加载,开始只把前两屏的数据加载绑定出来,后面的数据不进行处理,当页面滚动到对应区域的时候再重新请求数据然后绑定渲染数据
——————————————————————————————————
首屏延迟图片加载:

//html部分:img标签外要有个包裹容器
<div id="wrap">
    <img src=""  trueImg="img/1.png" />
</div>
//css部分:外层包裹容器设置背景默认图片;img的src为空,加载时浏览器会出现碎图,所以先隐藏,加载完真实图片后再取消隐藏
#wrap{
     background:url(img/2.png) no-repeat center center;
}
img{
     display:none;
}
//js部分
window.setTimeout(function(){
     var oImg=new Image;//创建一个临时img标签
     oImg.src=img.getAttribute("trueImg");
     oImg.onload=function(){//代表真实图片能够正常加载
          img.style.display="block";
          img.src=this.src;
          oImg=null;
     } 
},500);

——————————————————————————————————
其他屏的单张图片延迟加载:
原理:

image.png
window.onscroll=function(){
   if(wrap.isLoad){//已经加载过了
       return;
   }
   var A=wrap.offsetHeight+wrap.offsetTop;
   var B=document.documentElement.clientHeight||document.body.clientHeight+document.documentElement.scrollTop||document.body.scrollTop;
   if(A<B){
   //当条件成立,加载真实的图片,第一次加载完成后,在让页面继续滚动的过程中,A<B一直成立,又重新执行下面的操作,导致重复给一个容器中的图片进行加载
       var oImg=new Image;
       oImg.src=img.getAttribute("trueImg");
       oImg.onload=function(){
          img.src=this.src;
          img.style.display="block";
          oImg=null;
       };
       wrap.isLoad=true;//设置一个自定义属性,告诉浏览器已经把图片加载完了(不管是否正常加载,只要处理过一次以后都不再处理了)
   }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 图片延迟加载的原理是什么? 图片延迟加载的原理就是先不设置img的src属性,等合适的时机(比如滚动、滑动等)再把...
    齐修_qixiuss阅读 21,449评论 14 96
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,807评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,455评论 25 708
  • 一 艾草、五色线、香袋,猪牙草,恰恰,大家最容易吃到的粽子,在童年的端午节中却很稀缺。 每...
    素颜拙装阅读 659评论 0 4
  • 第一眼看到你,就爱上了你。与我,更相信,我们之间有着命定的缘份! 远远地看着你,你是我最亲爱的小王子。那一刻的心疼...
    Sunshine_MY阅读 560评论 0 3