web前端图片懒加载
来源:互联网 发布:linux一键安装lamp 编辑:程序博客网 时间:2024/05/22 07:06
图片内容已经占到了互联网内容总量的62%,也就是说超过一半的流量和时间都用来下载图片。从性能优化的角度看,图片也绝对是优化的热点和重点之一。而图片懒加载是web性能优化一个重要手段。
懒加载的原理
原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img标签的自定义属性中(比如data-src)。当js监听到该图片元素进入可视窗口时,即将自定义属性中的地址存储到src属性中,达到懒加载的效果。
这样做能防止页面一次性向服务器响应大量请求导致服务器响应慢,页面卡顿或崩溃等问题。
代码实现
js:
// 懒加载window.Echo = (function(window, document, undefined) { 'use strict'; var store = [], offset, throttle, poll; var _inView = function(el) { var coords = el.getBoundingClientRect(); return((coords.top >= 0 && coords.left >= 0 && coords.top) <= (window.innerHeight || document.documentElement.clientHeight) + parseInt(offset)); }; var _pollImages = function() { for(var i = store.length; i--;) { var self = store[i]; if(_inView(self)) { self.src = self.getAttribute('data-src'); store.splice(i, 1); } } }; var _throttle = function() { clearTimeout(poll); poll = setTimeout(_pollImages, throttle); }; var init = function(obj) { var nodes = document.querySelectorAll('[data-src'); var opts = obj || {}; offset = opts.offset || 0; throttle = opts.throttle || 250; for(var i = 0; i < nodes.length; i++) { store.push(nodes[i]); } _throttle(); if(document.addEventListener) { window.addEventListener('scroll', _throttle, false); } else { window.attachEvent('onscroll', _throttle); } }; return { init: init, render: _throttle };})(window, document);// 初始化Echo.init({ offset: 500, throttle: 100 });
offset:当前页面可是区域距离图片高度
throttle:延时加载时间
html代码块:
<img alt="懒加载" data-src="images/index/delay_show.jpg"/>
阅读全文
0 0
- web前端图片懒加载
- web前端图片懒加载
- web前端图片懒加载实现原理
- web前端图片懒加载实现原理(一)
- web前端图片懒加载实现原理(二)
- 前端优化-图片懒加载
- web前端性能优化(二)--图片的延迟加载
- 前端常用技术之图片懒加载
- 前端小白--图片懒加载imgLazyLoading
- 前端复习--图片加载
- 前端图片加载优化
- web前端关键词及web前端图片
- 前端滚动延时加载图片
- 前端优化:延迟加载图片
- 【web前端优化之图片延迟加载初探】中午不睡,下午崩溃
- web前端压缩图片方法——加快页面加载速度
- web前端压缩图片方法——加快页面加载速度
- 前端如何实现图片懒加载(lazyload) 提高用户体验
- 剑指offer-09:递归和循环,斐波那契数列
- 用简易数据挖掘觅食(献丑)
- 计算机视觉—DoG和LoG算子
- elasticsearch详解(一)——es是什么、能做什么?
- 基于unity射线的个人理解(一)
- web前端图片懒加载
- Just a Hook
- 震惊!!!平衡二叉树居然还有这种学习方法!!
- 算法系列——Container With Most Water
- 2017.8.7 hash测试 与数字签名
- TensorFlow培训
- IDEA搭建SpringBoot集成Jsp的辛酸历程
- 高德获取ip地理位置
- Qt国际化——多语言翻译时值得注意的一个编程问题