JS实例网页上图片延迟加载的JS代码

合集下载

javascript实现图片延迟加载方法汇总(三种方法)

javascript实现图片延迟加载方法汇总(三种方法)

javascript实现图⽚延迟加载⽅法汇总(三种⽅法)看到⼀些⼤型⽹站,页⾯如果有很多图⽚的时候,当你滚动到相应的⾏时,当前⾏的图⽚才即时加载的,这样⼦的话页⾯在打开只加可视区域的图⽚,⽽其它隐藏的图⽚则不加载,⼀定程序上加快了页⾯加载的速度,对于⽐较长的页⾯来说,这个⽅案是⽐较好的。

原理是这样:页⾯可见区域以下的图⽚先不加载,等到⽤户向下滚动到图⽚位置时,再进⾏加载。

这样做的好处在哪⾥?——当页⾯有好⼏屏内容时,有可能⽤户只看前⼏屏的内容,这样我们就可以只加载⽤户需要看的图⽚,减少服务器向⽤户浏览器发送图⽚⽂件所产⽣的负荷,下⾯通过三种⽅法给⼤家介绍js实现图⽚延时加载。

js实现图⽚延迟加载⽅法⼀:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>lazyImage2.html</title><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page"><meta http-equiv="content-type" content="text/html; charset=UTF-8"><!--<link rel="stylesheet" type="text/css" href="./styles.css" mce_href="styles.css">--></head><body style="text-align:center" mce_style="text-align:center"><p> &nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><div style="height:1290px;width:800px;border:1px;background:gray;"></div><div style="height:150px;width:800px;border:1px;background:green;"></div><img class="lazy" src="images/sprite.gif" mce_src="images/sprite.gif" alt="images/lazyloadImg.jpg" /><script type="text/javascript"><!--var temp = -1;//⽤来判断是否是向下滚动(向上滚动就不需要判断延迟加载图⽚了)window.onscroll = function() {var imgElements = document.getElementsByTagName("img");var lazyImgArr = new Array();var j = 0;for(var i=0; i<imgElements.length; i++) {if(imgElements[i].className == "lazy"){lazyImgArr[j++] = imgElements[i];}}var scrollHeight = document.body.scrollTop;//滚动的⾼度var bodyHeight = document.body.offsetHeight;//body(页⾯)可见区域的总⾼度if(temp < scrollHeight) {//为true表⽰是向下滚动,否则是向上滚动,不需要执⾏动作。

【前端优化】图片延迟加载Lazy-loading的原理与简单实现

【前端优化】图片延迟加载Lazy-loading的原理与简单实现

【前端优化】图⽚延迟加载Lazy-loading的原理与简单实现1.什么是lazy-loading图⽚“懒加载”为img标签src设置统⼀的图⽚链接,⽽将真实链接地址装在⾃定义属性中。

所以开始时候图⽚是不会加载的,我们将满⾜条件的图⽚的src重置为⾃定义属性便可实现延迟加载功能2.实现⽅法思想其实很简单,就是当图⽚相对于视⼝的距离⼩于视⼝⾼度的时候就置换图⽚的src!⽽图⽚的相对于视⼝的距离⽤getBoundingClientRect()简直so easy。

3.demo代码<!DOCTYPE html><html><head><title>lazy loading</title><style type="text/css">img {display: block;margin: 600px 100px;}</style></head><body><div class="zone"><img width="612" height="612" data-src="/7060/6969705425_0905bf6bba_o.jpg" src="img/loading.png" class="lazy"><img width="612" height="612" data-src="/7203/6969484613_0ee3af0144_o.jpg" src="img/loading.png" class="lazy"><img width="612" height="612" data-src="/7207/6821596428_cdae70e306_o.jpg" src="img/loading.png" class="lazy"><img width="612" height="612" data-src="/7037/6965140403_9fbb5e7f96_o.jpg" src="img/loading.png" class="lazy"></div><script type="text/javascript" src="jquery.min.js"></script><script type="text/javascript">$(function() {function loadImage (el, fn) {src = el.getAttribute('data-src');el.src = src;fn? fn() : null;}function elementInViewport(el) {var rect = el.getBoundingClientRect()return (rect.top >= 0 && rect.left >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight))}var query = $('.lazy'),images = new Array(),processScroll = function() {for (var i = 0; i < images.length; i++) {if (elementInViewport(images[i])) {loadImage(images[i], function() {images.splice(i, 1);console.log(images.length)});}};};for (var i = 0; i < query.length; i++) {images.push(query[i]);};window.addEventListener('scroll', processScroll);})</script></body></html>4.问题与优化于是功能便实现了,但是其实也有很多问题,⽐如打开页⾯,然后⼜点去别的窗⼝,看了部av回来后本以为这个页⾯图⽚已经缓冲好了结果尼玛啊拉下去还是要重新加载....所以需要判断这种情况,今天没时间了以后再针对这个写⼀下吧。

js延迟加载改变JS的位置加快网页加载速度

js延迟加载改变JS的位置加快网页加载速度

js延迟加载改变JS的位置加快⽹页加载速度当⼀个⽹站有很多js代码要加载,js代码放置的位置在⼀定程度上将会影像⽹页的加载速度,为了让我们的⽹页加载速度更快,本⽂总结了⼀下⼏个注意点:复制代码代码如下:<script type=”text/javascript” src=”" id=”my”></script><script type=”text/javascript”>setTimeout(“document.getElementById(‘my').src='include/php100.php'; “,3000);//延时3秒</script>这样通过延迟加载js代码,给⽹页加载留出更多的时间!在需要插⼊JS的地⽅插⼊以下代码:程序代码复制代码代码如下:<span id=”L4EVER”>LOADING…</span>当然,那个LOADING…你可以换成⾃⼰喜欢的⼩图⽚.看起来很有AJAX效果呢.然后在页⾯最底端插⼊:程序代码复制代码代码如下:<span id=”AD_L4EVER”>你的JS代码在这⾥!</span ><script>L4EVER.innerHTML=AD_L4EVER.innerHTML;AD_L4EVER.innerHTML=”";</script>这个牵涉到⽹页的加载顺序问题,例如引⼊外部js脚本⽂件时,如果放⼊html的head中,则页⾯加载前该js脚本就会被加载⼊页⾯,⽽放⼊body中,则会按照页⾯从上倒下的加载顺序来运⾏javascript的代码~~~ 所以我们可以把js外部引⼊的⽂件放到页⾯底部,来让js最后引⼊,从⽽加快页⾯加载速度。

divcss网页图片延迟加载的方法

divcss网页图片延迟加载的方法

divcss网页图片延迟加载的方法
我们常常会见到很多网页的图片并不是一打开页面就全部加载的,而是浏览到当前的图片位置才显示出来。

这是怎幺实现出来的呢?大家知道divcss网页图片延迟加载吗?我们积累了一些经验,在此拿出来与大家分享下。

 第一步:下载jQuery的程序包,我在网页下面已经提供修改过的,绝对的可用。

 适应各个版本的浏览器,还有手机浏览器
 第二步,将下载的文件解压放到一个js目录里面
 /js/lazyload/grey.gif
 /js/lazyload/jquery.js
 /js/lazyload/zyload.js
 然后在需要用到特效的模板页面中,加上以下调用代码
 我的建议是放在head前的最后一行
 路径地址自己更改,根据自己模板中的相应规则
 第三步:修改zyload.js文件
 找到.context img
 这个说明下,看仔细了
 其中如果去掉.context就剩下img是延迟加载所有图片,根据不同模板作相应改动,比如我这个模板,我只需要内容里的图片延迟加载,所以改
成.context
 img,这样只延迟加载.context容器内的图片,否则可能影响到其他图片的加载;。

抄代码|帝国cms jquery.lazyload.js实现图片延迟懒加载极简方法

抄代码|帝国cms jquery.lazyload.js实现图片延迟懒加载极简方法

抄代码|帝国cms zyload.js实现图片延迟懒加载极简方法如果你对网站速度优化有一定了解,或者你是用过百度统计提供的网站速度诊断工具的网站管理者,会知晓一件事:一个网站页面图片过多的话,加载时会导致网页打开变慢,甚至看得见“卡顿”的现象。

这不仅会影响用户的浏览体验,也会影响到搜索引擎对网站的优劣评判及seo。

(如上图所示,相比于js等文本类文件,三个红色标注的图片文件,就算kb更小,加载时间亦要久很多)对于较大型的、有专业程序员配置的网站运营者来说,为网站中的图片实现惰性加载(专业术语,俗称为延迟加载,懒加载),是一件正常不过的事。

毕竟,懒加载不是什么新技术,好几年前就已经在较大的互联网站普及了。

那问题来了:什么是懒加载?答:懒加载是一种网页交互呈现效果。

通常而言,首次只加载第一屏(能看得见的)的图片,之后的图片则不加载(或只加载一个文件容量特别小的图片,称为占位图),如果用户拖动滚动条至后面某处位置(这处位置称为可视区域)则再加载图片,这样做的好处是避免网页因加载图片过多而打开慢的弊端。

两个字,提速!如果网站图片多,要提速,那懒加载就是web技术层面的标配。

提升网站页面加载速度,利于seo提升——懒加载好处看上去很多,只是要如何具体地用在自己的网站上呢?对于没有专业程序员参与的网站运营管理者来说,要实现懒加载并不是那么容易。

网上有一些教程,厉害的高手是自己写原生js来解决,更多快捷解决方案是使用zyload.js插件,有示例代码及演示(请自行搜索或参见此处链接),这个插件的使用并不难,如果是从零开始构建一个页面,直接套用是没有问题的,可是要套用在帝国cms制作好的网站里,得用什么方式方法呢?经过在学而行营销网的实践摸索,以下是帝国cms结合zyload.js 实现图片延迟懒加载的极简解决方法。

---------------------------------首先,要下载zyload.js的迷你压缩版,此js文件相当小,只有2k大小。

前端开发中的图片延迟加载实现方法

前端开发中的图片延迟加载实现方法

前端开发中的图片延迟加载实现方法在现代互联网时代,网页的速度和性能优化是前端开发者关注的焦点之一。

而图片延迟加载就是一种常见的优化手段,它使得网页在加载图片时不会阻塞其他资源,提高页面的加载速度和用户体验。

一、为什么要使用图片延迟加载随着互联网的发展,网页中的图片越来越多,而图片资源的加载速度却始终无法与带宽的增长相匹配。

当页面中存在大量高分辨率图片时,网页的加载时间会明显增加,导致用户等待的时间过长,降低用户的整体体验。

而图片延迟加载的概念就是在页面初次加载时,只加载可视区域内的图片,待页面滚动到相应位置时才加载其他图片资源。

这种方法能够极大地减少页面的加载时间,提升用户的体验。

二、常用的图片延迟加载实现方法1. Lazy LoadingLazy Loading是一种常见的图片延迟加载技术,它通过将图片的src属性设置为一个占位符(如一张loading图),而将图片的真实路径存放在自定义的data-src 属性中。

当页面滚动到图片位置时,通过监听滚动事件来判断何时加载图片,然后将data-src的值赋给src属性,从而实现图片的延迟加载。

通过使用Lazy Loading,不仅可以提高网页的加载速度,还能减少对服务器的请求次数,节省带宽和服务器资源。

2. Intersection Observer APIIntersection Observer API是HTML5新增的一个API,它可以监听元素进入和离开可视区域的事件。

借助这个API,可以更加高效地实现图片的延迟加载。

具体实现方法是,通过创建一个IntersectionObserver对象,然后指定需要监听的元素和触发时的回调函数。

当被监听的元素进入或离开可视区域时,回调函数就会被触发,从而实现图片的延迟加载。

相比于传统的滚动事件监听,Intersection Observer API具有更好的性能和更简洁的使用方式,是现代前端开发中推荐使用的图片延迟加载实现方法。

前端开发中的图片懒加载技术实现

前端开发中的图片懒加载技术实现

前端开发中的图片懒加载技术实现懒加载技术是前端开发中常用的一种优化技术,它能够延迟加载页面中的图片,从而提高页面的加载速度和性能。

在现代的网页设计中,图片通常是页面中最大的资源之一,并且经常会延迟页面的渲染速度,给用户带来不好的体验。

因此,使用懒加载技术可以很好地提高用户的体验。

懒加载技术的实现原理很简单,即将页面上需要加载的图片进行延迟加载,直到用户的视口进入到该图片所在的区域,才开始加载图片。

这样可以大大减少页面的加载时间和网络带宽的消耗。

下面将介绍一种常见的懒加载技术实现方法。

首先,在HTML中将需要懒加载的图片的src属性设为空,例如:<img src="" data-src="路径/图片.jpg">然后,在JavaScript中监听页面滚动事件,判断需要懒加载的图片是否出现在用户的视口中。

当图片出现在视口中时,将其data-src属性的值赋给src属性,实现图片的加载。

代码示例:window.addEventListener('scroll', function() {var lazyImages = document.querySelectorAll('img[data-src]');lazyImages.forEach(function(image) {if (isElementInViewPort(image)) {image.src = image.dataset.src;image.removeAttribute('data-src');}});});isElementInViewPort函数用来判断元素是否出现在视口中,可以通过获取元素的位置和窗口的大小来计算判断。

如果元素的top小于窗口的bottom且元素的bottom大于窗口的top,则元素在视口中。

除了懒加载图片的方式外,还可以通过其他方式来补充优化,例如使用背景图片在CSS中实现。

前端开发中如何实现图片预加载

前端开发中如何实现图片预加载

前端开发中如何实现图片预加载在现代的网站和应用程序中,图片加载是不可或缺的一部分。

然而,在加载大量图片时,用户可能会遇到长时间等待的问题,这会影响用户体验和页面响应速度。

为了解决这个问题,前端开发人员可以采用图片预加载技术来优化页面加载速度。

下面将详细介绍如何在前端开发中实现图片预加载。

1. 预加载的概念图片预加载是指在图像出现在用户视线范围内之前,提前将其加载到内存中,以确保用户能够快速浏览到图片内容。

通过预加载图片,可以减少用户等待时间,提高用户体验。

2. 使用JavaScript进行图片预加载使用JavaScript进行图片预加载是一种常见的方法。

以下是具体的实现步骤:步骤一:创建一个数组,用于存储需要预加载的图片地址。

```javascriptvar imageUrls = ['image1.jpg','image2.jpg','image3.jpg'];```步骤二:创建一个计数器,用于记录已预加载的图片数量。

```javascriptvar loadedCount = 0;```步骤三:创建一个函数,用于加载图片。

每次加载完成后,计数器加一。

```javascriptfunction loadImage(url) {var image = new Image();image.onload = function() {loadedCount++;if (loadedCount === imageUrls.length) {// 所有图片加载完成后执行的操作}};image.src = url;}```步骤四:遍历图片数组,调用加载图片函数。

```javascriptfor (var i = 0; i < imageUrls.length; i++) {loadImage(imageUrls[i]);}```通过以上步骤,便可以实现图片的预加载。

原生js之图片懒加载实现

原生js之图片懒加载实现

目录
目录 (1)
1.什么是图片懒加载 (1)
2.为什么要使用图片懒加载 (1)
3.图片懒加载实现方式 (2)
1.先准备些图片标签 (2)
2.默认处于可视化区域内的图片先显示出来 (2)
3. 给window力口一个滚动事件 (3)
4.给img设置透明和过渡 (3)
5.完整代码 (4)
1.什么是图片懒加载
我们知道了浏览器加载img是很耗费资源的,还有带宽,而且还有一个特点就是如果没有设置img的src属性,就不会消耗这些资源。

所以图片懒加载就是默认先不设置img的src属性,而是等需要显示这张图片时再去设置其src将其显示出来,这就是图片懒加载。

2.为什么要使用图片懒加载
优化性能
3.图片懒加载实现方式
1 .先准备些图片标签
2 .默认处于可视化区域内的图片先显示出来
3 .给window加一个滚动事件
然后给window加一个滚动事件,在事件里面通过循环获取哪些即将显示在可视化容器里面的元素,当其即将显示时就给他设置src 的值。

【滚出来了就显示】
4 .给img设置透明和过渡
为了效果更好看点,可以默认把所有的图片全部设置为透明opacity:0,然后等要显示了就设置为opacity:1,同时加上过渡属性transition: 2s;这样显示时还会有特殊的效果。

5 .完整代码。

Jquery图片延迟加载插件jquery.lazyload.js的使用方法

Jquery图片延迟加载插件jquery.lazyload.js的使用方法

Jquery图⽚延迟加载插件zyload.js的使⽤⽅法最新版的zyload.js已不再是伪的延迟加载了⼀、请按照基本使⽤⽅法说明设置复制代码代码如下://载⼊JavaScript ⽂件<script src="jquery.js" type="text/javascript"></script><script src="zyload.js" type="text/javascript"></script>复制代码代码如下://img标签的4个属性⼀个都不能少,否则不能实现延迟加载的效果,如下:<img class="lazy" data-original="img/example.jpg" width="640" height="480">复制代码代码如下://使⽤$(function() {$("zy").lazyload();});⼆、常⽤属性说明复制代码代码如下:threshold : 200 //设置灵敏度,表⽰进⼊显⽰区域还有200像素就开始加载effect : "fadeIn" //使⽤淡⼊特效failure_limit : 10 //容差范围,⼀定要设置此值,原因说明请参考原⽂档container: $("#container") //使⽤⽗容器,⽗容器的CSS样式⾄少应包含"height: 600px;overflow: scroll;"两个属性event : "click" //修改触发事件为单击三、参考。

JS实现图片延迟加载

JS实现图片延迟加载

一、JS实现图片延迟加载1、引入zyload.js文件2、然后将页面中需要延迟加载的图片进行一定处理,src就不是图片真正的路径,而是本地的一张默认的初始化图片,真正的图片的路径放在lazyload 属性中3、这样就可以实现图片的延迟加载<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/ ; xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>t</title><script type="text/javascript"src="zyload.js"></script></head><body><img src="本地图片路径" lazyload="网络上面需要下载的图片路径" height="48px" width="48px"/></body></html>二、延迟加载js代码:/*图片延迟加载原始版本图片加载的顺序只能是从上到下,不能是可见区域的图片加载。

如果进行分页时,处于浏览器的底部,就根本没有图片延迟加载的效果,图片全部被加载完了*/var lazyLoad = {Init: function () {return $("img[lazyload]");},Calculate: function (lazyloadobject) {var windowHeight = $(window).height();var arrReturn = {};var _scrollTop;if (lazyloadobject.length == 0) {return null;}else {lazyloadobject.each(function (i) {_scrollTop = parseInt($(this).offset().top - windowHeight);if (!arrReturn.hasOwnProperty(_scrollTop)) {arrReturn[_scrollTop] = new Array();}arrReturn[_scrollTop].push($(this));});this.ArrLoad = arrReturn;return arrReturn;}},ArrLoad: null,IsLoad: function (scrolltop, objectstop) {if (objectstop != null && objectstop != {}) {for (i in this.ArrLoad) {if (parseInt(i) <= scrolltop &&this.ArrLoad.hasOwnProperty(i)) {for (j = 0; j < this.ArrLoad[i].length; j++) { this.ArrLoad[i][j].attr("src",this.ArrLoad[i][j].attr("lazyload")).removeAttr("lazyload");}delete this.ArrLoad[i];}}}},Run: function () {var lazyLoadObject = this.Init();this.Calculate(lazyLoadObject);arrScrollTop = this.ArrLoad;if (arrScrollTop == null) {return false;}else {var _this = this;_this.IsLoad($(window).scrollTop(), arrScrollTop);$(window).scroll(function () {_this.IsLoad($(this).scrollTop(), arrScrollTop); });}}}。

Lazy Load 延迟加载图片的jQuery插件中文使用文档_jquery

Lazy Load 延迟加载图片的jQuery插件中文使用文档_jquery

什么是LazyLoad技术?在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的交互。

尤其是对于高清晰的图片,占了几百K的空间。

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的。

在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担,这样势必会引起速度上质的提升。

兼容:ie6/7/8, firefox 3.5.5, opera 10.10, safari 4.0.4, chrome 3.0其中safari和chrome部分功能不支持。

Lazy Load 灵感来自 Matt Mlinac 制作的 YUI ImageLoader 工具箱. 这是演示页面。

原文的链接在:/projects/lazyload现在Lazy Load的版本已经是1.8.1下载地址: /jiaoben/63757.html实例下载:下载声明:1. 注:此代码仅供学习交流,请勿用于商业用途。

2. 注:此代码仅供学习交流,请勿用于商业用途。

文件信息:文件名: Lazy Load延迟加载图片实例文件Hash:dd3e435124e377c2da33344d442f85d1文件大小:1.1 MB文件上传日期:2012 年 3 月 25 日文件更新日期:2012 年 3 月 25 日文件描述:在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的交互。

尤其是对于高清晰的图片,占了几百K的空间。

Lazy Load 是一个用JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的。

JS广告代码延迟加载的代码

JS广告代码延迟加载的代码

document.getElementById(‘ggad1’).innerHTML; document.getElementById(‘ggad1’).innerHTML=““; } ; 以上就是我们给大家介绍的 JS 广告代码的内容了。希望大家学业有成,工 作顺利
想要显示的广告内容 ;src=“/frontpage/include/php100.js”>;;; 判断要显示的广告位置是否存在 ; function chkdiv(divid){ var chkid=document.getElementById(divid); if(chkid != null) {return true; } else {return false; } } 最后就是显示 JS 广告代码了 if (chkdiv(‘guangg1’)) { document.getElementById(‘guangg1’).innerHTML=
“,3000);//延时 3 秒
;
第二,JS 广告代码最后加载
在需要插入 JS 的地方插入以下代码:
程序代码 ;LOADING...; 当然,那个 LOADING 你可以换成自己喜欢的小图片.看起来很有 AJAX 效 果呢. 然后在页面最底端插入: 程序代码 ; 你的 JS 代码在这里!; ;L4EVER.innerHTML=AD_L4EVER.innerHTML;AD_L4EVER.innerHTML= ““;; 第三,JS 最后加载 想要显示 JS 广告代码的位置 ;;
JS 广告代码延迟加载的代码
JS 广告代码延迟加载或是最后加载加快页面载入,如果页面中有很多 JS
广告代码,或者其他的 JS 代码太大,这时候加载起来就会很费时间。使用
JS 广告代码延迟加载或是最后加载的方法以加快页面载入速度。

如何利用js获取网页图片的加载时间

如何利用js获取网页图片的加载时间

如何利用js获取网页图片的加载时间比如我们打开一个网页,我想通过js获取图片的加载的开始时间和结束时间,应该如何做,希望给出一个有效的函数net_lover 发表于 2006-12-9 10:08:45<script>var a,bfunction aa(o){if(o.readyState == "loading"){a = new Date()x1.innerHTML=o.readyState}if(o.readyState =="complete"){b = new Date()x2.innerHTML=balert("加载:" + (b-a) + "毫秒")}}</script><body><div id=x1></div><div id=x2></div><imgsrc="/images/blog_sfruc_edu_cn/mxh/6/o_762_1024x768.jpg" onreadystatechange="aa(this)"/>yueliangdao0608 发表于 2006-12-9 15:38:56<script>var a,bfunction aa(o){if(o.readyState == "loading"){a = new Date()document.getElementById("x1").style.display = "block";document.getElementById("x1").innerHTML = "Loading...";//x1.innerHTML=o.readyState}if(o.readyState =="complete"){b = new Date()document.getElementById("x1").innerHTML="加载:" + (b-a)/1000 + "秒";//document.getElementById("x1").style.display = "none";//alert("加载:" + (b-a) + "毫秒")}}</script><body><div id=x1 style="display:none"></div><imgsrc="/images/blog_sfruc_edu_cn/mxh/6/o_762_1024x768.jpg" onreadystatechange="aa(this)"/>yueliangdao0608 发表于 2006-12-9 15:39:26见到钻石了。

JS延迟加载(setTimeout)JS最后加载

JS延迟加载(setTimeout)JS最后加载

JS延迟加载(setTimeout)JS最后加载第⼀ JS延迟加载复制代码代码如下:<script language="JavaScript" src="" id="my"></script><script>setTimeout("document.getElementById('my').src='include/common.php'; ",3000);//延时3秒</script>⼀般情况下都是利⽤setTimeout来实现第⼆ JS最后加载在需要插⼊JS的地⽅插⼊以下代码:复制代码代码如下:<SPAN id=L4EVER>LOADING...</SPAN>当然,那个LOADING…你可以换成⾃⼰喜欢的⼩图⽚。

看起来很有AJAX效果呢。

然后在页⾯最底端插⼊:复制代码代码如下:<SPAN class=spanclass id=AD_L4EVER><script src="1.js"></script></SPAN>js代码复制代码代码如下:<script>L4EVER.innerHTML=AD_L4EVER.innerHTML;AD_L4EVER.innerHTML="";</script> setTimeout的标准语法是: setTimeout(表达式,时间(毫秒)) 两个参数.在这⾥着重记下第⼀个参数是⼀个 function时的调⽤,假设是⼀个函数.1.函数⽆参:function alertV(){ alert("000"); }当第⼀个参数不加引号("" 或 '')时,延迟⼀秒:setTimeout(alertV,1000);当第⼀个参数加上⼜引号时,延迟⼀秒:setTimeout("alertV()",1000);2. 函数有参:function alertV(event){ alert("keyCode="+event.keyCode); }此时应设置成:setTimeout(function(){alertV(event);},1000); 不然会提⽰参数未定义.setTimeout(function () {$("#id").html(datastr);}, 1000);jquery的通过delay实现,例如$("#id").delay(1000).html(datastr);setTimeout('yourFunction()',5000); 5秒后执⾏yourFunction(),只执⾏⼀次setInterval('yourFunction()',5000); 每隔5秒执⾏⼀次u如果在yourFunction()中再次调⽤了setTimeout('yourFunction()',5000),可以完成类似于setInterval('yourFunction()',5000)的功能要是哪位还有好的可⾏⽅法,谢谢共享.。

JS实现图片懒加载(lazyload)过程详解

JS实现图片懒加载(lazyload)过程详解

JS实现图⽚懒加载(lazyload)过程详解对于图⽚较多的页⾯,使⽤懒加载可以⼤幅提⾼页⾯加载速度,提⾼⽤户体验。

懒加载的意义(为什么要使⽤懒加载)对页⾯加载速度影响最⼤的就是图⽚,⼀张普通的图⽚可以达到⼏M的⼤⼩,⽽代码也许就只有⼏⼗KB。

当页⾯图⽚很多时,页⾯的加载速度缓慢,⼏S钟内页⾯没有加载完成,也许会失去很多的⽤户。

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

这样⼦对于页⾯加载性能上会有很⼤的提升,也提⾼了⽤户体验。

原理将页⾯中的img标签src指向⼀张⼩图⽚或者src为空,然后定义data-src(这个属性可以⾃定义命名,我才⽤data-src)属性指向真实的图⽚。

src指向⼀张默认的图⽚,否则当src为空时也会向服务器发送⼀次请求。

可以指向loading的地址。

注:图⽚要指定宽⾼<img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" />当载⼊页⾯时,先把可视区域内的img标签的data-src属性值负给src,然后监听滚动事件,把⽤户即将看到的图⽚加载。

这样便实现了懒加载。

代码<head><meta charset="UTF-8"><title>Document</title><style>img {display: block;margin-bottom: 50px;width: 400px;height: 400px;}</style></head><body><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa7kaed2hpj30sg0l9q54.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa7kaed2hpj30sg0l9q54.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa7kaed2hpj30sg0l9q54.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""><img src="default.jpg" data-src="/large/006y8mN6gw1fa5obmqrmvj305k05k3yh.jpg" alt=""></body>JavaScript<script>var num = document.getElementsByTagName('img').length;var img = document.getElementsByTagName("img");var n = 0; //存储图⽚加载到的位置,避免每次都从第⼀张图⽚开始遍历lazyload(); //页⾯载⼊完毕加载可是区域内的图⽚window.onscroll = lazyload;function lazyload() { //监听页⾯滚动事件var seeHeight = document.documentElement.clientHeight; //可见区域⾼度var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条距离顶部⾼度for (var i = n; i < num; i++) {if (img[i].offsetTop < seeHeight + scrollTop) {if (img[i].getAttribute("src") == "default.jpg") {img[i].src = img[i].getAttribute("data-src");}n = i + 1;}}}</script>jQuery<script>var n = 0,imgNum = $("img").length,img = $('img');lazyload();$(window).scroll(lazyload);function lazyload(event) {for (var i = n; i < imgNum; i++) {if (img.eq(i).offset().top < parseInt($(window).height()) + parseInt($(window).scrollTop())) {if (img.eq(i).attr("src") == "default.jpg") {var src = img.eq(i).attr("data-src");img.eq(i).attr("src", src);n = i + 1;}}}}</script>使⽤节流函数进⾏性能优化如果直接将函数绑定在scroll事件上,当页⾯滚动时,函数会被⾼频触发,这⾮常影响浏览器的性能。

网页图片延迟加载技术简介

网页图片延迟加载技术简介

网页图片延迟加载技术简介
欢迎大家在这里学习网页图片延迟加载技术这里是我们给大家整理出来的精彩内容。

我相信,这些问题也肯定是很多朋友在关心的,所以我就给大家谈谈这个!
 网上下载了很多的版本,很多都不能用,几个版本比较,加上改进,我这个版本总算成行,分享给大家。

 网上有很多版本的js,比较复杂,我这里用的是jQuery,更加的方便和快捷。

 首先要下载jQuery的程序包,我在网页下面已经提供修改过的,绝对的可用。

 适应各个版本的浏览器,还有手机浏览器
 第二步,将下载的文件解压放到一个js目录里面
 /js/lazyload/grey.gif
 /js/lazyload/jquery.js
 /js/lazyload/zyload.js。

图片懒加载imgLazyLoading.js使用详解

图片懒加载imgLazyLoading.js使用详解

图⽚懒加载imgLazyLoading.js使⽤详解本⽂主要介绍web前端使⽤图⽚懒加载imgLazyLoading ,供⼤家参考,具体内容如下1、html代码//懒加载对象⽬标代码<img originalSrc="__PUBLIC__/images/home/icon_pingtuan.png">//引⽤本地js<script src="__PUBLIC__/js/imgLazyLoading.min.js"></script><script src="__PUBLIC__/js/imgLazyLoading.js"></script>2、js代码imgLazyLoading.min.jsjQuery.fn.extend({delayLoading: function (a) {function g(d) {var b, c;if (a.container === undefined || a.container === window) {b = $(window).scrollTop();c = $(window).height() + $(window).scrollTop()} else {b = $(a.container).offset().top;c = $(a.container).offset().top + $(a.container).height()}return d.offset().top + d.height() + a.beforehand >= b && c >= d.offset().top - a.beforehand}function h(d) {var b, c;if (a.container === undefined || a.container === window) {b = $(window).scrollLeft();c = $(window).width() + $(window).scrollLeft()} else {b = $(a.container).offset().left;c = $(a.container).offset().left + $(a.container).width()}return d.offset().left + d.width() + a.beforehand >= b && c >= d.offset().left - a.beforehand}function f() {e.filter("img[" + a.imgSrcAttr + "]").each(function (d, b) {if ($(b).attr(a.imgSrcAttr) !== undefined && $(b).attr(a.imgSrcAttr) !== null && $(b).attr(a.imgSrcAttr) !== "" && g($(b)) && h($(b))) { var c = new Image;c.onload = function () {$(b).attr("src", c.src);a.duration !== 0 && $(b).hide().fadeIn(a.duration);$(b).removeAttr(a.imgSrcAttr);a.success($(b))};c.onerror = function () {$(b).attr("src",a.errorImg);$(b).removeAttr(a.imgSrcAttr);a.error($(b))};c.src = $(b).attr(a.imgSrcAttr)}})}a = jQuery.extend({defaultImg: "",errorImg: "",imgSrcAttr: "originalSrc",beforehand: 0,event: "scroll",duration: "normal",container: window,success: function () {},error: function () {}}, a || {});if (a.errorImg === undefined || a.errorImg === null || a.errorImg === "")a.errorImg = a.defaultImg;var e = $(this);if (e.attr("src") === undefined || e.attr("src") === null || e.attr("src") === "")e.attr("src", a.defaultImg);f();$(a.container).bind(a.event, function () {f()})}});imgLazyLoading.js$(function () {$("img").delayLoading({//defaultImg: "__PUBLIC__/images/img/loading.gif", // 预加载前显⽰的图⽚errorImg: "", // 读取图⽚错误时替换图⽚(默认:与defaultImg⼀样)imgSrcAttr: "originalSrc", // 记录图⽚路径的属性(默认:originalSrc,页⾯img的src属性也要替换为originalSrc)beforehand: 0, // 预先提前多少像素加载图⽚(默认:0)event: "scroll", // 触发加载图⽚事件(默认:scroll)duration: "normal", // 三种预定淡出(⼊)速度之⼀的字符串("slow", "normal", or "fast")或表⽰动画时长的毫秒数值(如:1000),默认:"normal" container: window, // 对象加载的位置容器(默认:window)success: function (imgObj) { }, // 加载图⽚成功后的回调函数(默认:不执⾏任何操作)error: function (imgObj) { } // 加载图⽚失败后的回调函数(默认:不执⾏任何操作)});});以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

基于 JavaScript的图片延迟加载技术

基于 JavaScript的图片延迟加载技术

基于 JavaScript的图片延迟加载技术摘要:图片延迟加载技术是网页制作中使用非常广泛的技术,能够提高网页的加载速度,增强用户体验;根据用户浏览深度逐步加载图片,减少图片下载量,减轻服务器的负荷,节约网络资源。

关键词:网页制作;图片延迟加载;JavaScript;用户体验Web3.0时代,网页中图片量大且页面长,已经成为了大多数网页的标配。

如果每次打开网页都需要加载完全部内容后再将页面呈现出来,那么过多的图片加载会占用很大的带宽,严重影响网页的加载速度,导致用户等待时间过长,网络流量消耗巨大。

如果根据用户浏览的需要,只将网页可视区域的内容加载后及时呈现给用户,就大大加快了网页的响应速度,增强用户体验;同时还减轻了服务器的负荷,节约网络资源。

因此图片延迟加载技术在网页制作中得到了非常广泛的应用。

所谓图片延迟加载技术就是不用一次性把网页中的所有图片全部加载完成,而是根据用户浏览的需要,只加载可视区域内的图片,可视区域之外的图片默认是不加载的,随着页面滚动、浏览器重置大小等因素,那些可视区域之外的图片进入可视区域时再逐步加载并显示。

1 JavaScriptJavaScript是Web 页面中的一种脚本编程语言,也是一种通用的、跨平台的、基于对象和事件驱动并具有安全性能的解释型脚本语言,不但可用于编写客户端的脚本程序,由Web浏览器解释执行,还可以编写在服务器端执行的脚本程序,在服务器端处理用户提交的信息并动态地向客户端浏览器返回处理结果。

浏览器中的JavaScript 解释器将直接读入源代码并执行,代码错误只能等到解释器执行到有关代码时才能被发现。

如果浏览器中没有解释器,JavaScript代码就无法执行[1]。

2图片延迟加载技术2.1图片延迟加载技术的实现原理首先给页面中实际的图片区域一张默认的体积非常小的图片,当页面内容全部加载完后,再逐步加载网页可视区域内的真实图片。

本文的实现原理是将所有图片的src属性值设置为默认小图片的路径,真实图片的路径放入到自定义属性_src中,当图片到页面顶端的垂直距离小于等于浏览器窗口可视区域的高度加滚动条的高度之和时,图片即将进入可视区域,再把_src的值赋给src。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大家如果使用firebug去查看的话就会发现,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。

实现原理
把所有需要延时加载的图片改成如下的格式:
<img lazy_src="图片路径" border="0"/>
然后在页面加载时,把所有使用了lazy_src的图片都保存到数组里,然后在滚动时计算可视区域的top,然后把延时加载的图片中top小于当前可视区域(即图片出现在可视区域内)的图片的src的值用lazy_src的来替换(加载图片)
代码
lazyLoad=(function() {
var map_element = {};
var element_obj = [];
var download_count = 0;
var last_offset = -1;
var doc_body;
var doc_element;
var lazy_load_tag;
function initVar(tags) {
doc_body = document.body;
doc_element = patMode == 'BackCompat' ? doc_body: document.documentElement;
lazy_load_tag = tags || ["img", "iframe"];
};
function initElementMap() {
var all_element = [];
//从所有相关元素中找出需要延时加载的元素
for (var i = 0,
len = lazy_load_tag.length; i < len; i++) {
var el = document.getElementsByTagName(lazy_load_tag[i]);
for (var j = 0,
len2 = el.length; j < len2; j++) {
if (typeof(el[j]) == "object" && el[j].getAttribute("lazy_src")) {
element_obj.push(all_element[key]);
}
}
}
for (var i = 0,
len = element_obj.length; i < len; i++) {
var o_img = element_obj[i];
var t_index = getAbsoluteTop(o_img);//得到图片相对document的距上距离
if (map_element[t_index]) {
map_element[t_index].push(i);
} else {
//按距上距离保存一个队列
var t_array = [];
t_array[0] = i;
map_element[t_index] = t_array;
download_count++;//需要延时加载的图片数量
}
}
};
function initDownloadListen() {
if (!download_count) return;
var offset = (window.MessageEvent && !document.getBoxObjectFor) ? doc_body.scrollTop: doc_element.scrollTop;
//可视化区域的offtset=document的高+
var visio_offset = offset + doc_element.clientHeight;
if (last_offset == visio_offset) {
setTimeout(initDownloadListen, 200);
return;
}
last_offset = visio_offset;
var visio_height = doc_element.clientHeight;
var img_show_height = visio_height + offset;
for (var key in map_element) {
if (img_show_height > key) {
var t_o = map_element[key];
var img_vl = t_o.length;
for (var l = 0; l < img_vl; l++) {
element_obj[t_o[l]].src = element_obj[t_o[l]].getAttribute("lazy_src");
}
delete map_element[key];
download_count--;
}
}
setTimeout(initDownloadListen, 200);
};
function getAbsoluteTop(element) {
if (arguments.length != 1 || element == null) {
return null;
}
var offsetTop = element.offsetTop;
while (element = element.offsetParent) {
offsetTop += element.offsetTop;
}
return offsetTop;
}
function init(tags) {
initVar(tags);
initElementMap();
initDownloadListen();
};
return {
init: init
}
})();
使用方法:把页面上需要延时加载的图片src改成为lazy_src,然后把上面的js放到body最后面,然后调用:lazyLoad.init();
调试的方法可以使用firebug来查看一时图片是否是延时加载。

另外:
如果你的页面上存在有内容切换的栏目的话,可能在切换时切换的内容里的图片可能会不显示,处理的方法是在内容时单独图片加载处理,如:
///切换内容的代码...
chlid.find("img[init_src]").each(function(){
$(this).attr("src",$(this).attr("init_src"));
$(this).removeAttr("init_src");
});
---★本文转摘自『IT学习者』→file:///E:/技术/JS实例网页上图片延迟加载的JS代码-ajax-IT学习者.mht
---★本文转摘自『IT学习者』→file:///E:/技术/JS实例网页上图片延迟加载的JS代码-ajax-IT学习者.mht。

相关文档
最新文档