浅析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兼容标准的表格变色效果
Jun 28 Javascript
使用javascript创建快捷方式的简单实例
Aug 09 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
Dec 08 Javascript
JS与jQ读取xml文件的方法
Dec 08 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
Node.js 中exports 和 module.exports 的区别
Mar 14 Javascript
值得分享和收藏的xmlplus组件学习教程
May 05 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
Jun 21 Javascript
Vue之Watcher源码解析(2)
Jul 19 Javascript
webpack+react+antd脚手架优化的方法
Apr 02 Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 24 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中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
python MySQLdb使用教程详解
2018/03/20 Python
selenium+python实现自动登录脚本
2018/04/22 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
python元组的概念知识点
2019/11/19 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
金融学专业大学生职业生涯规划
2014/03/07 职场文书
优秀班主任材料
2014/12/16 职场文书
应聘教师求职信范文
2015/03/20 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
基于Python编写一个监控CPU的应用系统
2022/06/25 Python