js实现图片的延迟加载

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

      项目进展得差不多了,闲得蛋疼。开始关注各种高性能WEB技术。看到一篇博客说土豆网的图片是延迟加载的。原理是这样:页面可见区域以下的图片先不加载,等到用户向下滚动到图片位置时,再进行加载。这样做的好处在哪里?——当页面有好几屏内容时,有可能用户只看前几屏的内容,这样我们就可以只加载用户需要看的图片,减少服务器向用户浏览器发送图片文件所产生的负荷。于是我打开了土豆网,没发现它的这种功能。但是一想,这确实是挺有意思的。这跟人人网的分批加载新鲜事的有异曲同工之妙,于是想自己coding实现一下。以下是偶的HTML和JS——在IE下简单测试过了。

简单说下思路:先在<img>标签中将src的值设置为一个极小的图片文件路径,alt属性的值设置为真正要显示的图片文件路径,当向下滚动到图片的位置时,将src的值替换为alt的值,这样就会自动加载真正要显示的图片了,同时,给标签设置一个值为lazy的class,加载完了之后,将其值设置为notlazy,以此来判断哪些图片需要加载,哪些不需要。

代码中的注释已经很清楚了,各位自己慢慢看吧。欢迎扔砖,更欢迎各种改进和完善的建议。

 

注意事项:1、页面中用到了两个图片文件,读者自己随便找来两张即可。在此我就不提供了。

2、sprite.gif是从土豆网上下载的,地址:http://css.tudouui.com/skin/__g/img/sprite.gif 这是一张小到几乎没有的图片。

3、请不要指责页面太丑陋,这不是关键。

4、我之所以定义那两块比便便还难看的DIV,是想让效果更清晰地展现。可以清晰地看到,第二个div全部可见以后,再向下滚动大图片就会自动加载。

 

不知道CSDN这个文本编辑器怎么整的,把我的<script>标签加了一个mce前缀,我的<p></p>中间有N多&nbsp;,也被它清除了。大家copy的时候记得自己修改一下。 

O了,我扯完淡了,大家继续。

JS实现图片延迟加载 在一些图片比较多的网站,往往会出现这样的问题:由于页面中的图片资源多,加上网速的不给力,导致页面的图片迟迟加载不出来,或者所有的图都是加载到半张的样子,让人非常不爽,这种情况导致了非常差的用户体验,最终会让用户失去耐心,使得该网站的流量流失,现在我们就来探讨一下如何解决这个问题。 阅读详情

相关推荐

jQuery 插件 lazyload.js 的插件使用——实现图片延迟加载

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志——苏轼 写在前面 lazyload.js 是一个基于 JQuery 的插件,可以用来缓冲加载图片。为什么要缓冲加载图片呢? 如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来。通过这个插件,可以在需要显示图片的时候,才下载图片,从而可以减少服务器的压力,提高页面加载速度。 lazyload 插件的优点: 可以提.

一碗周 620

使用jquery插件实现图片延迟加载技术

<br />有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。<br />这里推荐使用 jquery图片延迟 加载插件jquery.lazyload实现图片延迟 加载提高网站打开速度<br />下载地址:http://www.appelsiini.net/download/jquery.lazyload.js<br

660

CMOS的宽/长比、传输门与三态门、锁存器与触发器、简单版图、竞争与冒险

目录 1.CMOS的宽长比 2.传输门与三态门 传输门 三态门 3.锁存器与触发器 3.1RS锁存器[3] 3.2D锁存器 3.3D触发器 4.简单CMOS器件的版图 5.竞争与冒险 1.CMOS的宽长比 关于COMS原理及结构图可以参考[1]COMS原理及门电路设计. 栅在源漏方向的长度称作栅的长L,垂直方向称为栅的宽W,如图1中NMOS的版图。 图1 以MOS管...

king阿金 1万+

JS实现图片延迟加载图片懒加载)

1

Rossbort的博客 1289

延迟加载JS的方式

JavaScript 延迟加载就是等DOM(页面)加载完成之后再加载js文件,这样有助于提高页面加载速度,用户体验更好常用延迟加载js方式有:常用defer , async。script.jsindex.html效果:如下,在不加defer 或者 async放在页面顶部是获取不到这个div元素的,因为页面还没有加载出来。调用的地方加上defer。

LlanyW的专栏 2238

js延迟加载的方式有哪些

3. 使用 Intersection Observer API:Intersection Observer API 可以观察元素是否进入视口,并在满足条件时执行相关代码或加载资源。4. 使用异步加载脚本:可以通过创建 `` 标签并将 `async` 或 `defer` 属性设置为 true,来实现异步加载脚本。5. 使用动态创建的 `` 元素:可以通过创建新的 `` 元素,并将 `src` 属性设置为要加载的图片路径,来实现延迟加载。当图片加载完成后,可以执行相关代码。

子玉的博客 1163

js开发:原生js实现图片延迟加载

js实现图片延迟加载方法一: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Generon的博客 805

Javascript实现图片延迟加载

所以,对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。对页面加载速度影响最大的就是图片,一张普通的图片可以达到几M的大小,而代码也许就只有几十KB。当页面图片很多时,页面的加载速度缓慢,几S钟内页面没有加载完成,也许会失去很多的用户。// 页面窗口改变 / 视窗大小改变时。// 1. 做纵向的可见判断。// 3. 防止图片重复加载。// 加载需要懒加载的图片。// 判断图片是否可见。// 横纵方向改变时。

qq_34306228的博客 1206

html5图片延迟加载效果,js实现多张图片延迟加载效果

本文实例为大家分享了js实现多张图片延迟加载效果的具体代码,供大家参考,具体内容如下具体代码如下:Document*{margin:0;padding:0;font-size:14px;}ul,li{list-style:none;}img{display:block;border:none;}/*最外层容器不设定宽高的*/.news{padding:10px;}.news li{height:6...

weixin_36060917的博客 311

JS实现网页图片延迟加载

jquery.lazyload.js是一个用 JavaScript 编写的 jQuery 插件。它可以延迟加载长页面中的图片,通过判断浏览者是否在查看当前图片,若不是则默认加载预设的填充图片“grey.gif”,直到浏览者滑动鼠标滚轮或浏览到图片位置时,真正的图片才会得以加载。 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度。浏览器将会在加载可见图片之后即进入就绪状态。在某些情况下还可以帮助降低服务器负担。

1654

javascript实现图片延迟加载

将页面中的img标签中的src替换成original在页面中加入如下代码:  lazyLoad=(function(){ var map_element = {}; var element_obj = []; var download_count = 0; var last_offset = -1; var doc_body; var doc_element; var lazy_l

ms_X0828的专栏 1568

JavaScript代码实现图片延迟加载并淡入淡出显示效果

H对于一个网站,最占用带宽,最影响页面显示速度的东西就是图片图片是很重要的,有时是必须的,作为一个站长,我们是千方百计的使用各种技巧来优化图片,我们可以使用 ImageOptim 或 TinyPNG 来消减图片体积,或用 data URIs 和小图片来提升图片加载速度。如果一个页面上图片太大,或图片太多,无法消减,我们有另外一个方法来提升用户的页面显示体验,那就是延迟加载(lazy

键盘上的青春的博客 2857

html页面图片延迟加载,JavaScript实现图片延迟加载

在日常的抓取工作当中,经常看到网站为了减轻网页加载所需资源对图片等资源进行延迟加载。那什么样的页面需要用到延迟加载呢?比如我们打开一个图片网站,一个页面有很多图片,这个时候我们就用的到延迟加载;比如我们写一篇很长的技术博客的时候也需要配一些图,这里也可以用到延迟加载。那什么是延迟加载呢?简单的说是一种对网页的性能优化,加载一个很多图片的网页不需要先把全部图片加载出来,而是只加载可视区域的图片即可,...

weixin_33561910的博客 887

js图片延迟加载如何实现

这里延迟加载的意思是,拖动滚动条时,在图片出现在浏览器显示区域后才加载显示。 大概的实现方式是: 在页面的load没有触发之前,把所有的指定id的元素内的img放入到imgs中,将所有的图片的src值放入到一个新建的_src属性中,把src设置为指定的显示图片。 然后,在document.body的scroll事件触发时,循环计算imgs中的img元素位置是否正好在浏览器显示...

weixin_33872660的博客 66

JavaScript实现图片延迟加载技术

-

疯狂程序员 1082

jquery.lazyload.js实现图片异步延迟加载

所谓图片异步加载,意思是不用一次把图片全部加载完,你可以叫它延迟加载,缓冲加载都行。 看看你有没有这种需求:某篇文章图片很多,如果在载入文章时就载入所有图片,无疑会延缓载入速度,让用户等更久,所以,我想找这样一种插件,让网页只加载浏览器视野范围内的图片,没出现在范围内的图片就暂不加载,等用户滑动滚动条时再逐步加载。lazyload就是用来实现这种效果。 lazyload.js其实是jQ

yuhangkit 1878

php实现图片懒加载,JavaScript实现图片懒加载非可视区域延迟加载

网页上图片很多时,如果不对图片使用懒加载(延迟加载)技术,网站显示速度就会很慢,给用户的感觉很不好,图片资源服务器的负载也会很大,一般不太好的服务商会直接返回 503 Service Unavailable 暂停服务错误。很多网站在处理这个问题时,直接使用 JQuery 的懒加载扩展,这样一来,网站必须要加载 JQuery,速度自然下降。JQuery 是一个很臃肿的 JavaScript 框架,虽...

weixin_31845811的博客 256

js图片实现延迟加载

1 <script type="text/javascript"> 2 function delayload(option){ 3 //读取参数 4 //图片未加载时显示的图片 5 var src = option.src ? option.src : '', 6...

apple20141201的博客 139

缓冲加载图片的jquery.lazyload.js实现图片延迟加载

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担.     (一)如...

axl---专心专注于web前端开发 146
上一篇: Android笔记——无代码,有真相
下一篇: 用Java图形窗口显示网页内容
im110
博客等级 码龄19年 44粉丝 28原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值