前端优化-图片懒加载

什么是懒加载

  懒加载技术(简称lazyload)是对网页性能优化的一种方案。lazyload的核心是按需加载,避免网页打开时加载过多资源,让用户等待太久,在适当的时候加载用户需要的资源(这里用户需要的资源指该资源呈现在浏览器可视区域)。这里我们主要是对img标签使用懒加载技术,使用jquery的query.lazyload.js库实现。

  通俗的讲就是:当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次),只有当图片出现在浏览器的可视区域内时,才设置图片真正的路径,让图片显示出来。这就是图片懒加载。

为何要是用懒加载技术?

  比如一个页面中有很多图片,如淘宝、京东首页等等,如果一上来就发送这么多请求,页面加载就会很漫长,如果js文件都放在了文档的底部,恰巧页面的头部又依赖这个js文件,那就不好办了。更为要命的是:一上来就发送百八十个请求,服务器可能就吃不消了(又不是只有一两个人在访问这个页面)。因此优点就很明显了:不仅可以减轻服务器的压力,而且可以让加载好的页面更快地呈现在用户面前(用户体验好)。

三、如何实现?  

  主要有以下2个关键点:

1、页面中的img元素,如果没有src属性,浏览器就不会发出请求去下载图片(也就没有请求咯,也就提高性能咯),一旦通过javascript设置了图片路径,浏览器才会送请求。有点按需分配的意思,你不想看,就不给你看,你想看了就给你看~

  2、怎么获取真正的路径,这个简单,现在真正的路径存在元素的“data-original(这个名字起个自己认识好记的就行)属性里,要用的时候就取出来,再设置;  

第一步,引入懒加载所需的js文件
<script src="jquery.lazyload.js"></script>
第二步,img标签的属性如下:
<img class="lazy" data-original="img/example.jpg" width="640" height="480">
第三步,在对应的js文件中,对img标签调用如下imgLazyLoad方法.

四、懒加载方法 

function imgLazyLoad(param,$dom){
	var placeholder = baseUrl + ‘/lar-ui/imgs/placeholder/0.png‘;
	var extendParam = $.extend({effect: ‘fadeIn‘,placeholder: placeholder}, param);
	if($dom){
		$($dom).find(‘img.lazy‘).lazyload(extendParam);
	}else{
		$(‘img.lazy‘).lazyload(extendParam);
	}
}

参数说明

  1)$dom为实施懒加载的dom元素,param对象中的参数含义如下

  2)Placeholder : "img/grey.gif", //用图片提前占位。

  3)threshold : 200, //提前开始加载。值为数字,代表的页面高度。目的在于加载图片时可以做到不让用户察觉。

  4)event : "click", //事件触发时才加载,值有click,mouseover,foobar等,可以像这样触发:find(‘img.lazy‘).trigger(‘foobar‘)。

  5)effect : "fadeIn" ,//载入使用何种效果,effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等。

  6)container: $("#container")//容器内水平滚动效果,滚动时按需加载。Lazyload默认是在拉动浏览器滚动条的时候生效,这个参数还可以让你在拉动某个DIV的滚动条时依次加载其中图片

  7)failurelimit:图片排序混乱时,值为数字,lazyload默认在找到第一张不在可视区域里的图片时则不在继续加载,如果当HTML容器里混乱的时候有可能会出现可见区域内的图片加载不出来的情况,failurelimit意在加载N张可见区域外的图片,避免出现这个问题。

五、方法的调用

  

imgLazyLoad(
    {effect:‘show‘},//载入时的效果
    $(‘#myCarousel‘)//获取需要实施懒加载的DOM元素
);

  

  

时间: 2024-10-25 09:10:59

前端优化-图片懒加载的相关文章

前端性能优化--图片懒加载(lazyload image)

图片懒加载(当然不仅限于图片,还可以有视频,flash)也是一种优化前端性能的方式.使用懒加载可以想要看图片时才加载图片,而不是一次性加载所有的图片,从而在一定程度从减少服务端的请求 什么是懒加载 懒加载怎么个懒法,就是你不想看就不给你看,我也懒得加载出来,懒得去请求.通俗的说就是你不要就不给你,怎么地.举个栗子,比如在进入某个页面的时候,它会有许多的图片,有些图片可能在下面,当我们点进页面但没有滑动下去或没看完整个页面,那么下面的图片就会"没用",加载了也白加载,而且还降低了网页的加

前端实现图片懒加载

项目中经常会遇到多图片需要加载的情况,如果一次性全部加载完耗时较多,也较慢.这时就需要用到图片懒加载,常用的有jqueryLazyload这个插件.下载地址:https://github.com/helijun/helijun/blob/master/plugin/lazyLoad/jquery.lazyload.js 使用时,首先得引入jquery,然后再引入jqueryLazyload这个插件,原理就是先不给img加src路径,然后把路径加在属性节点data-original上,在满足条件需

前端性能优化技术(一):图片懒加载

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>lazyload</title> </head> <body> <div> <a href="#"><img class="lazy" src="imag

页面性能优化-原生JS实现图片懒加载

在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况.我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片.所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片.这种加载图片的方式叫做图片懒加载,又叫做按需加载或图片的延时加载.这样做的好处是:1.可以加快页面首屏渲染的速度:2.节约用户的流量. 一.实现思路 1.图片img标签自定义一个属性data-src来存放真实的地址. 2.当滚动页面时,检查所有的img标签,判断是否出现在事业中,如果

前端插件实现图片懒加载

一.echo.js: 我们在开发页面的时候肯定会遇到图片比较多的时候,虽然我们可能有图片分布式的服务器,但是在客户端还是会有很大的性能开销.为了用户体验,特别是对首屏加载速度要求很高的,通常我们会考虑图片延时加载,lazyloading这款插件已经能很好地实现这一功能,可是是基于jQuery,对于移动端可能不太实用.一个非常简单实用叫echo的插件,3k左右特别适合移动端使用.步骤如下: 1.在页面中需要引入echo.css和echo.min.js 2.对需要进行延迟加载的图片采用如下写法: <

图片预加载与图片懒加载的区别与实现

预加载与懒加载,我们经常经常用到,这些技术不仅仅限于图片加载,我们今天讨论的是图片加载: 一.什么是图片预加载与懒加载: 图片预加载:顾名思义,图片预加载就是在网页全部加载之前,提前加载图片.当用户需要查看时可直接从本地缓存中渲染,以提供给用户更好的体验,减少等待的时间.否则,如果一个页面的内容过于庞大,没有使用预加载技术的页面就会长时间的展现为一片空白,这样浏览者可能以为图片预览慢而没兴趣浏览,把网页关掉,这时,就需要图片预加载.当然这种做法实际上牺牲了服务器的性能换取了更好的用户体验. 图

实现图片懒加载

Web 图片的懒加载就是通过读取img元素,然后获得img元素的data-src(也可以约定为其他属性名)属性的值,并赋予img的src,从而实现动态加载图片的机制. 这里需要注意的是: img在初始化的时候不要设置src属性,因为即使设置 src='' 浏览器也会尝试加载图片. 一个简单的图片懒加载共涉及两个方面, 1. HTML 约定 我们首先需要给准备实施懒加载的img元素添加指定的class 这里为m-lazyload ,同时将img src赋值给 data-src属性.具体示例为: <

图片懒加载lazyload

图片懒加载:jquery && jquery-lazyload 图片懒加载是一种前端性能优化方案:随着视图区的滚动,加载剩下的图片,这样当滚动条没有滚动到下面的时候,图片不加载,减少资源浪费 原本:<img src="images/img1.jpg" > 懒加载:<img class="lazy" data-original="images/img1.jpg" > <script type="

Vue实现一个图片懒加载插件

前言 图片懒加载是一个很常用的功能,特别是一些电商平台,这对性能优化至关重要.今天就用vue来实现一个图片懒加载的插件. 这篇博客采用"三步走"战略--Vue.use().Vue.direction.Vue图片懒加载插件实现,逐步实现一个Vue的图片懒加载插件. Vue.use() 就像开发jQuery插件要用$.fn.extent()一样,开发Vue插件我们要用Vue.use().其实就是官方内部实现的一个方法,供广大开发者灵活开发属于自己的插件.只需要按照约定好的规则开发就行. 用