浅析js预加载/延迟加载


Posted in Javascript onSeptember 25, 2014

Pre loader 预加载一般有两种常用方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式,然后使用动态插入节点方法加载的文件都会 在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css 的执行更有可能让整个页面变化。xhr方式虽然不会执行脚本,但是由于同域的限制

Lazy loader方式在一些图片非常多的网站中非常有用,在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们所在的位置才加载,这样对于含有很多 图片的比较长的网页来说,可以加载的更快,并且还能节省服务器带宽。jQuery插件中也有插件来实现该功能。

在腾讯的QQ空间和微博中就采用这样技术实现,在大访问量的网站,这样就相对可以减少服务器的压力,在用户访问到所见区域和下面内容时候才去请求。而不是传统的一次把整个页面下载过来,在下载过程中存在着用户等待内容呈现。

IE中使用new Image().src 去预加载文件。
其他浏览器使用动态插入document.createElement('object')标签来完成加载。

说明:
1. new Image().src 之所以不能在ff中使用是因为ff对图片实现了一套单独的缓存。 同时safari和chrome看起来也没有被缓存。
2. 动态插入object 标签需要插入到非head部分,以触发加载。
3. ie7 ie8 也可以通过一些代码使用动态object加载文件。

Javascript 相关文章推荐
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
JQuery Ajax 跨域访问的解决方案
Mar 12 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
Sep 09 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
采用call方式实现js继承
May 20 Javascript
alert出数组中的随即值代码
Sep 25 Javascript
JS设置网页图片vspace和hspace属性的方法
Apr 01 Javascript
jQuery实现简单下拉导航效果
Sep 07 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
Apr 23 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
深入了解Node.js中的一些特性
Sep 25 #Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
Sep 25 #Javascript
JS小游戏之仙剑翻牌源码详解
Sep 25 #Javascript
JS小游戏之宇宙战机源码详解
Sep 25 #Javascript
JS小游戏之极速快跑源码详解
Sep 25 #Javascript
JS小游戏之象棋暗棋源码详解
Sep 25 #Javascript
我用的一些Node.js开发工具、开发包、框架等总结
Sep 25 #Javascript
You might like
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
Python中的类学习笔记
2014/09/23 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
Python构建图像分类识别器的方法
2019/01/12 Python
python如何以表格形式打印输出的方法示例
2019/06/21 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
诚信的演讲稿范文
2014/05/12 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
党员民主评议总结
2014/10/20 职场文书
2014年服务员工作总结
2014/11/18 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
加班费申请报告
2015/05/15 职场文书
单独二胎证明
2015/06/24 职场文书