




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
jquery lazyload延迟加载的实现原理分析 前言 懒加载技术(简称lazyload)并不是新技术,它是js程序员对网页性能优化的一种方案。lazyload的核心是按需加载。在大型网站中都有lazyload的身影,例如谷歌的图片搜索页,迅雷首页,淘宝网,QQ空间等。因此掌握lazyload技术是个不错的选择,可惜jquery插件lazyload官网(.appelsiini./projects/lazyload)称不支持新版浏览器。 lazyload在什么场合中应用比较合适? 涉及到图片,falsh资源,iframe,网页器(类似FCK)等占用较大带宽,且这些模块暂且不在浏览器可视区内,因此可以使用lazyload在适当的时候加载该类资源。避免网页打开时加载过多资源,让用户等待太久。 如何实现lazyload? lazyload的难点在如何在适当的时候加载用户需要的资源(这里用户需要的资源指该资源呈现在浏览器可视区域)。因此我们需要知道几点信息来确定目标是否已呈现在客户区,其中包括: 可视区域相对于浏览器顶端位置;待加载资源相对于浏览器顶端位置。 在得到以上两点数据后,通过如下函数,便可得出某对象是否在浏览器可视区域了。 返回浏览器的可视区域位置 复制代码代码如下: /返回浏览器的可视区域位置 functiongetClient() varl,t,w,h; l=document.documentElement.scrollLeft|document.body.scrollLeft; t=document.documentElement.scrollTop|document.body.scrollTop; w=document.documentElement.clientWidth; h=document.documentElement.clientHeight; returnleft:l,top:t,width:w,height:h; 返回待加载资源位置 复制代码代码如下: /返回待加载资源位置 functiongetSubClient(p) varl=0,t=0,w,h; w=p.offsetWidth; h=p.offsetHeight; while(p.offsetParent) l+=p.offsetLeft; t+=p.offsetTop; p=p.offsetParent; returnleft:l,top:t,width:w,height:h; 其中函数getClient()返回浏览器客户区区域信息,getSubClient()返回目标模块区域信息。此时确定目标模块是否出现在客户区实际上是确定如上两个矩形是否相交。 复制代码代码如下: /判断两个矩形是否相交,返回一个布尔值 functionintens(rec1,rec2) varlc1,lc2,tc1,tc2,w1,h1; lc1=rec1.left+rec1.width/2; lc2=rec2.left+rec2.width/2; tc1=rec1.top+rec1.height/2; tc2=rec2.top+rec2.height/2; w1=(rec1.width+rec2.width)/2; h1=(rec1.height+rec2.height)/2; returnMath.abs(lc1-lc2)w1&Math.abs(tc1-tc2)=0;i-) if(arri) prec2=getSubClient(arri); if(intens(prec1,prec2) callback(arri); /加载资源后,删除监测 arri; 复制代码代码如下: /检测目标对象是否出现在客户区 functionautocheck() varprec1=getClient(); jiance(arr,prec1,function(obj) /加载资源. alert(obj.innerHTML); ) /子区域一 vard1=document.getElementById(d1); /子区域二 vard2=document.getElementById(d2); /需要按需加载区域集合 vararr=d1,d2;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保技术转让创新创业项目商业计划书
- 粮食纤维饮料行业跨境出海项目商业计划书
- 小组合作学习心得与教学反思范文
- 餐饮供应链管理流程及成本分析
- 医药行业药品采购合同模板
- 中考语法考点总结与练习
- 小学数学教案设计与课堂组织技巧
- 园林绿化施工现场管理规范汇编
- 航空服装管理系统需求文档
- 雷电防护及接地施工详细方案
- 新乐市物业管理办法细则
- 杭州国企采购管理办法
- 2025年成都市中考数学试题及解析
- 罪犯心理健康教育课件
- 向英烈致敬班会课件
- GB/T 25195.2-2025起重机图形符号第2部分:流动式起重机
- 【课件】化学保“胃”战-酸碱盐复习与提高-2024-2025学年九年级化学人教版(2024)下册
- 高校资产管理十五五规划方案
- 《食管癌的教学查房》课件
- 任务二鞋带自己系(教案)-浙教版劳动一年级上册
- DB13-T2674-2018-危险化学品企业应急救援人员培训及考核规范-河北省
评论
0/150
提交评论