浅析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中call与apply的用法小结
Dec 28 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
JavaScript中循环遍历Array与Map的方法小结
Mar 12 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
Node.js与MySQL交互操作及其注意事项
Oct 05 Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
vue项目中导入swiper插件的方法
Jan 30 Javascript
jQuery实现高级检索功能
May 28 jQuery
浅谈关于vue中scss公用的解决方案
Dec 02 Javascript
Javascript作用域和作用域链原理解析
Mar 03 Javascript
js实现弹幕飞机效果
Aug 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
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
int和Integer有什么区别
2013/05/25 面试题
Hibernate持久层技术
2013/12/16 面试题
新春寄语大全
2014/04/09 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
给上级领导的感谢信
2015/01/22 职场文书
社区党建工作总结2015
2015/05/13 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
浅谈怎么给Python添加类型标注
2021/06/08 Python
如何解决php-fpm启动不了问题
2021/11/17 PHP
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android
java版 简单三子棋游戏
2022/05/04 Java/Android
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python