浅析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 相关文章推荐
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
详解JavaScript语言的基本语法要求
Nov 20 Javascript
JavaScript登录验证码的实现
Oct 27 Javascript
jQuery、layer实现弹出层的打开、关闭功能
Jun 28 jQuery
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
JS实现放烟花效果
Mar 10 Javascript
一文了解JavaScript用Element Traversal新属性遍历子元素
Nov 27 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 命名空间实例说明
2011/01/27 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
深入认识javascript中的eval函数
2009/11/02 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
详解package.json版本号规则
2019/08/01 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
Python3基础之基本数据类型概述
2014/08/13 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
python字符串Intern机制详解
2019/07/01 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
董事长职责范文
2013/11/08 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
客户接待方案
2014/02/26 职场文书
内勤主管岗位职责
2014/04/03 职场文书
开除员工通知
2015/04/22 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书