微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

js图片实时加载提供网页打开速度

浏览大型网站,特别是图片比较多的图片,如大型的电商网站,你会发现处了第一屏外,往下滚动的时候图片才加载出来,没必要一开始加载就要把全部图片加载出来,这样子打开网面的速度得到了很好提高。以下是笔者目前所想到的思路,如果有更好的思路,望不吝赐教。

其实实时加载图片思路很简单,页面一开始加载的时候把不需要一开始就加载的图片(如第二屏以下的图片,反正是要往下滚动才能看到的,不如把它们设置成往下滚动的时候再实时加载)路径保持到一个自定义属性里,如:

19岁女孩直面癌症 7年前曾截肢

,src="http://ctc.qzonestyle.gtimg.cn/ac/b.gif"是一个1px*1px的透明gif图片,自定义属性data-src里的"http://y3.ifengimg.com/a/2014_37/03c4830691a6d8b.jpg"才是图片的路径,往下滚动到它的时候把data-src里的值替换掉src的值,然后把data-src属性移除掉……

如下是demo

rush:js;"> js<a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a>实时加载
cont2
  • 19岁女孩直面癌症 7年前曾截肢

  • 19岁女孩直面癌症 7年前曾截肢

  • 19岁女孩直面癌症 7年前曾截肢

  • 19岁女孩直面癌症 7年前曾截肢

  • 19岁女孩直面癌症 7年前曾截肢

cont3

如上demo里的cont1里的图片是一加载页面显示的,对于首页布局是固定的,可以确认那些图片是第二屏以下的,但是对于内容页,主体内容容器里的图片出现的位置是不可控制的,这就需要加载完毕真个页面的时候再判断是不是在在可视范围内,如果是在可视范围内就把它加载出来(当然,首页也可这么做,但是如果网速很慢,那么打开首页的时候要等到整个页面架构加载完毕之后才显示图片,而不是从上而下加载出来),图片要设置width与height属性,这让它在页面一个位置,不然为加载前它只占透明gif图片的大小位置。

如下demo针对内容页做了一点修改,window.onload、window.onscroll的时候都触发加载

rush:js;"> js<a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a>实时加载
7年前截肢的19岁癌症晚期女孩

http://www.cnblogs.com/xiaomou2014

http://www.cnblogs.com/xiaomou2014

http://www.cnblogs.com/xiaomou2014

7年前截肢的19岁癌症晚期女孩

19岁女孩直面癌症 7年前曾截肢

7年前截肢的19岁癌症晚期女孩

19岁女孩直面癌症 7年前曾截肢

7年前截肢的19岁癌症晚期女孩

19岁女孩直面癌症 7年前曾截肢

7年前截肢的19岁癌症晚期女孩

19岁女孩直面癌症 7年前曾截肢

7年前截肢的19岁癌症晚期女孩

19岁女孩直面癌症 7年前曾截肢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐