三行代码让你网站加载快100倍!

使用图片的懒加载!

对页面加载速度影响最大的就是图片,一张普通的图片可以达到几M的大小,而代码也许就只有几十KB。当页面图片很多时,页面的加载速度缓慢,几S钟内页面没有加载完成,也许会失去很多的用户。

所以,对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。

这样对网页的加载速度至少有几十到上百倍的提升!

原理

计算<img>是否应该显示,如果已到屏幕显示区域则显示图片,否则不加载图片

JavaScript实现

动态加载总共分为以下几个步骤,这里每个步骤都将被拆分为独立的函数

1. 添加页面滚动监听事件

2. 当触发监听事件时会执行 _loadImage 函数,该函数负责加载图片

虽然执行了_loadImage函数,但是我们得知道哪些图片需要被加载,这里的判断依据是什么呢?


3 依据就是判断该图片是否在当前窗口的可视区域内,在这里我们封装一个_isShow函数来实现

自此一个图片加载的闭环就形成了

当网页滚动的事件被触发 -> 执行加载图片操作 -> 判断图片是否在可视区域内 -> 在,则动态将data-src的值赋予该图片。

好了,这样基本就可以了。

最后给出源码,大家直接下来就可以用啦,好用别忘了给颗星呀

https://github.com/zhanyouwei/m-lazy

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,593评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 这几天上班精神都一般,不知道是睡眠不足的原因还是工作任务太繁琐的原因……好在马上就放假了。 今天的主要成果就是引进...
    真昼之月阅读 166评论 0 0
  • 岳晓东 前言 阿静是深圳火车站柏灵顿咖啡厅的服务员。 一天下午,一个学者模样的年轻人走进咖啡厅,在一角坐下,叫了一...
    暖阳_1332阅读 802评论 0 0
  • 周末慵懒的午后,我一如既往地走进这家街角的咖啡馆,扑鼻而来的依旧是浓郁的咖啡香气,还有刚出炉的可颂独有的酥油味。喝...
    啵叽啵叽啾阅读 366评论 0 0