原理
将页面中的img标签src指向一张小图片或者src为空,然后定义data-src(这个属性可以自定义命名,我才用data-src)属性指向真实的图片。src指向一张默认的图片,否则当src为空时也会向服务器发送一次请求。可以指向loading的地址。
1 | <img src="default.jpg" data-src="http://ww4.sinaimg.cn/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" /> |
当载入页面时,先把可视区域内的img标签的data-src属性值赋值给src,然后监听滚动事件,把用户即将看到的图片加载。这样便实现了懒加载。
代码
在写代码前,需要了解各种高度。先看这篇文章
https://link.zhihu.com/?target=http%3A//i.jakeyu.top/2016/09/04/scrollTop-offsetTop-scrollLeft-offsetLeft/
1 |
|
JavaScript
1 | var num = document.getElementsByTagName('img').length; |
使用节流函数进行性能优化
如果直接将函数绑定在scroll事件上,当页面滚动时,函数会被高频触发,这非常影响浏览器的性能。
我想实现限制触发频率,来优化性能。
节流函数:只允许一个函数在N秒内执行一次。下面是一个简单的节流函数:
1 | // 简单的节流函数 |