- 浏览: 1059618 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (501)
- dwr (6)
- javascript (84)
- oracle (66)
- jsp/servlet (18)
- ant (3)
- 基础知识 (12)
- EXT (10)
- My SQL (10)
- java (71)
- spring (37)
- 学习的对象 (2)
- Linux (24)
- 面试 (1)
- HTML/CSS (11)
- tomcat (11)
- 收藏夹 (2)
- Power Designer (2)
- struts.xml配置文件 (1)
- sturts2 (3)
- myeclipse (8)
- eclipse (7)
- Maven (34)
- SVN (3)
- SAP JCO (2)
- JBOSS (11)
- webservice (8)
- word (1)
- 敏捷开发 (1)
- sybase (4)
- Nexus (3)
- EhCache (3)
- log4j (3)
- Cookie (4)
- Session (4)
- CXF (7)
- AXIS (2)
- SSO (1)
- LDAP (1)
- velocity (2)
- Jquery (5)
- redis (2)
- http (4)
- dojo (1)
- Linux资源监控软件mnon的安装与运用 (1)
- notepad++ (1)
- EA (1)
- UML (1)
- JasperReports (1)
- 权限 (0)
- freemarker (4)
- Spring MVC (1)
- JMS (1)
- activeMQ (1)
- hession (3)
- 安全 (1)
- ibatis (2)
- log (1)
- nginx (1)
最新评论
-
winhbb:
我刚好遇到了一个问题(在可以依赖注入的场合有效):有两个模块A ...
解决Maven项目相互依赖/循环依赖/双向依赖的问题 -
nanjiwubing123:
long3ok 写道你好 XmlOutputFormatter ...
用XStream转换复杂XML -
zhoujianboy:
另外一个方法实现eclipse tomcat 热部署:http ...
eclipse下实现maven项目在tomcat容器热部署方法 -
long3ok:
你好 XmlOutputFormatter 请问这个类是在什么 ...
用XStream转换复杂XML -
ganbo:
总结的好,文章给力。
解决Maven项目相互依赖/循环依赖/双向依赖的问题
有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。
推荐:使用jquery图片延迟加载插件jquery.lazyload实现图片延迟
实现原理:
把所有需要延时加载的图片改成如下的格式:
<img lazy_src="图片路径" border="0"/>
然后在页面加载时,把所有使用了lazy_src的图片都保存到数组里,然后在滚动时计算可视区域的top,然后把延时加载的图片中top小于当前可视区域(即图片出现在可视区域内)的图片的src的值用lazy_src的来替换(加载图片):
使用方法:把页面上需要延时加载的图片src改成为lazy_src,然后把上面的js放到body最后面,然后调用:lazyLoad.init();
调戏的方法可以使用firebug来查看一时图片是否是延时加载。
另外:
如果你的页面上存在有内容切换的栏目的话,可能在切换时切换的内容里的图片可能会不显示,处理的方法是在内容时单独图片加载处理,如:
///切换内容的代码…
refer link:http://www.cnblogs.com/fishtreeyu/archive/2011/03/12/1982067.html
推荐:使用jquery图片延迟加载插件jquery.lazyload实现图片延迟
实现原理:
把所有需要延时加载的图片改成如下的格式:
<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 = document.compatMode == '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"); });
refer link:http://www.cnblogs.com/fishtreeyu/archive/2011/03/12/1982067.html
发表评论
-
JSONEditor
2015-07-08 20:11 551JSONEditor: https://github.com/ ... -
Javascript开发调试
2014-07-08 10:08 737小谈chrome调试命令:console.log的使用 h ... -
利用Script实现JSONP跨域
2014-01-24 09:38 9141.什么是跨域 我们经常会在页面上使用ajax请求访问其他服 ... -
jQuery JSONP 跨域实践
2013-12-12 18:24 680jQuery JSONP 跨域实践 一客户端(url:htt ... -
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2013-10-17 09:35 708预加载图片是提高用户体验的一个很好方法。图片预先加载到浏览器中 ... -
Js中escape(),encodeURI()和encodeURIComponent()使用和比较:
2013-09-12 09:42 1027Js中escape(),encodeURI()和encodeU ... -
If-Modified-Since & If-None-Match
2013-04-27 13:24 856If-Modified-Since & If-None ... -
为什么JS文件带参数 JS后带参数什么意思
2013-04-27 11:20 1338我们经常在页面里会看到在加载的js或css文件带时文件后面常常 ... -
关于document.compatMode的一些介绍
2013-04-22 17:35 968对于document.compatMode,很多朋友可能都根我 ... -
js之事件冒泡和事件捕获
2013-04-20 10:03 1726事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差 ... -
js中addEventListener中第3个参数 .
2013-04-19 16:33 1618捕获阶段、目标阶段、冒泡阶段 addEventListener ... -
超链接在web开发中使用总结
2013-04-02 14:33 1120在工作中在前端页面的 ... -
JavaScript Module Pattern: In-Depth
2013-03-27 11:47 974Module difinition: http://www.a ... -
JQuery移除事件
2013-01-30 13:00 929移除事件 unbind(type [,data]) ... -
Js 冒泡事件阻止
2013-01-29 09:27 9911. 事件目标 现在,事 ... -
查找所有嵌套iframe .
2013-01-28 10:19 114401.//查找所有嵌套iframevar allIfrs = ... -
什么是同源策略
2012-12-12 11:15 1134一.什么是同源策略 ... -
js 编码,使用java解码方式
2012-10-30 11:02 1627使用两个方法:decodeURIComponent和escap ... -
Cookies
2012-05-04 10:10 1035ookies Cookies 集合设置 coo ... -
XMLHttpRequest 对象(AJAX)的状态码(readyState)及HTTP 状态代码(status)的对照表
2012-04-19 19:43 1466XMLHttpRequest 对象(AJAX)的状态码(rea ...
相关推荐
图片延迟加载是一种优化网页性能的技术,它通过只加载视口内的图片来减少页面初始化时的数据传输量,提高页面加载速度,提升用户体验。在本场景中,我们关注的是使用jQuery库实现这一功能的jQuery.lazyload插件。 ...
本文将详细讲解如何使用 JavaScript 实现网页图片的延迟加载特效。 首先,我们需要理解延迟加载的工作原理。传统的网页加载方式是当页面加载时,所有图片都会立即请求并显示。然而,如果一个页面包含大量图片,这将...
在提供的压缩包"网页图片延迟加载插件.rar"中,很可能包含了实现延迟加载的JavaScript文件、示例HTML文件和必要的CSS文件。这些文件可以作为学习和实践延迟加载技术的资源,你可以通过查看源代码了解其工作原理,并...
"jQuery实现滚动网页延时加载图片代码.rar"提供的就是两个使用jQuery实现滚动延时加载图片的示例。 滚动延时加载的主要原理是:当用户滚动页面,只有当图片出现在视口范围内时,才真正请求图片数据并显示。这样可以...
在网页设计中,提高用户体验和...总结来说,"js页面图片延迟加载特效"是一种高效优化网页加载速度的技术,通过JavaScript实现,能显著提升用户体验。通过理解和应用这些知识点,开发者可以创建更流畅、响应更快的网页。
在网页设计中,图片延迟加载(也称为懒加载)是一种优化技术,用于提高网页加载速度和用户体验。当用户滚动页面时,只有当前可视区域内的图片才会被加载,而不是一次性加载所有图片。这样可以减少初次加载页面时的...
这种技术可以有效避免用户在浏览过程中遇到的图片延迟加载问题,从而提升网页的整体响应速度和用户体验。预加载的关键在于预测用户下一步可能访问的图片,并提前加载这些图片到本地缓存中,以便于当用户实际访问时...
综上所述,“图片延迟加载插件”涉及到了网页性能优化、JavaScript编程、事件处理、数据属性的使用、浏览器API、动画效果的实现等多个方面的技术知识。通过深入理解和实践,我们可以提升网页的加载速度和用户体验。
本篇文章将深入探讨jQuery实现页面延迟加载的技术原理,并提供两个源码实例:`JqueryLazyLoad.rar`和`LazyLoad.rar`。 ### 1. jQuery延迟加载基本原理 页面延迟加载的核心思想是利用浏览器的滚动事件,判断元素...
在JavaScript中,延迟加载(Lazy Loading)是一种优化网页性能的技术,它允许图片在用户滚动到可视区域时才开始加载,而不是在页面加载时一次性加载所有图片。这有助于减少页面初始加载时间,提升用户体验,特别是...
`lazyload.js`是一个轻量级、高性能的JavaScript库,专门用于实现图片和其他元素的延迟加载。它具有以下特点: - **简单易用**:只需几行代码即可集成到项目中。 - **兼容性好**:支持所有现代浏览器,包括IE9及...
图片延迟加载技术是一种优化...综上所述,图片延迟加载技术是通过jQuery等工具实现的一种网页优化策略,旨在提高页面加载速度和用户体验。通过合理的设计和实施,它可以有效减少不必要的数据传输,使网页加载更加高效。
1. **JavaScript库**:有许多开源的JavaScript库可以帮助开发者实现图片延时加载,如`lozad.js`、`lazysizes`等。这些库提供了便捷的API,只需少量代码即可快速集成。 2. **CSS属性**:利用CSS属性如`object-fit`和...
本篇文章将深入探讨“类似淘宝图片加载JS代码”的工作原理和实现方式,帮助你理解如何通过前端技术优化图片加载,提升网站性能。 1. **延迟加载(Lazy Loading)** - 延迟加载是一种优化策略,它只在用户滚动到...
### 一、jQuery图片延迟加载原理 图片延迟加载的核心思想是,当图片不在浏览器的可视区域内时,不加载图片数据,而是只加载图片的基础信息,如HTML结构。当用户滚动页面,图片即将进入可视区域时,才开始加载图片。...
`lazyload.js` 是一个实现图片延迟加载的JavaScript库,它的特点是轻量级且易于使用,没有多余的代码,使得开发者能够快速地集成到项目中。在本文中,我们将深入探讨`lazyload.js`的工作原理、使用方法以及如何在...
总之,jQuery Loading图片延迟加载特效是一种有效的性能优化手段,它结合了jQuery的便利性和JavaScript的动态特性,实现了图片在需要时才加载,从而提升了网页加载速度和用户体验。对于图片相册类的应用,这种特效...
在本文中,我们将深入探讨JavaScript图片延迟加载的工作原理、实现方法以及它如何提高用户体验。 首先,理解图片延迟加载的核心概念。在传统的网页加载过程中,所有图片都会在页面加载时一次性下载,这可能导致页面...
一、延迟加载原理 传统的网页加载方式是在页面加载时一次性加载所有资源,包括图片。然而,当页面中包含大量图片时,这可能导致页面加载时间过长,用户体验下降。延迟加载则只加载用户当前视口范围内的图片,当用户...