浅析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 相关文章推荐
MooTools 1.2中的Drag.Move来实现拖放
Sep 15 Javascript
node.js中的fs.chmod方法使用说明
Dec 18 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
Jul 08 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
Sep 29 Javascript
解决vue项目报错webpackJsonp is not defined问题
Mar 14 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
ES7之Async/await的使用详解
Mar 28 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
Jun 10 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 Javascript
深入webpack打包原理及loader和plugin的实现
May 06 Javascript
vue实现打地鼠小游戏
Aug 21 Javascript
利用node.js开发cli的完整步骤
Dec 29 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
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
javascript parseInt 函数分析(转)
2009/03/21 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
Python类成员继承重写的实现
2020/09/16 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
python切割图片的示例
2020/11/12 Python
中国跨境电商:Tomtop
2017/03/16 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
行政助理的职责
2013/11/14 职场文书
大学毕业感言100字
2014/02/03 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
保密工作整改报告
2014/11/06 职场文书
承诺函格式模板
2015/01/21 职场文书
晚会开幕词
2015/01/28 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
2019同学聚会主持词
2019/05/06 职场文书
导游词之南京栖霞山
2019/10/18 职场文书