浅析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实现Java的List功能(实例讲解)
Nov 07 Javascript
本人自用的global.js库源码分享
Feb 28 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
jQuery插件formValidator实现表单验证
May 23 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
详解vue的数据劫持以及操作数组的坑
Apr 18 Javascript
Vue动态组件和异步组件原理详解
May 06 Javascript
小程序实现搜索框
Jun 19 Javascript
在Layui中实现开关按钮的效果实例
Sep 29 Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 28 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
用js实现in_array的方法
2013/11/05 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
js验证上传图片的方法
2015/05/12 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
从零学python系列之从文件读取和保存数据
2014/05/23 Python
python实现udp数据报传输的方法
2014/09/26 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
python移位运算的实现
2019/07/15 Python
python的flask框架难学吗
2020/07/31 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
Python实现粒子群算法的示例
2021/02/14 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
汽车专业毕业生推荐信
2013/11/12 职场文书
工作睡觉检讨书
2014/02/25 职场文书
房产继承公证书
2014/04/09 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server