浅析js预加载/延迟加载
作者:bea
Pre loader 预加载一般有两种常用方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式,然后使用动态插入节点方法加载的文件都会 在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css 的执行更有可能让整个页面变化。xhr方式虽然不会执行脚本,但是由于同域的限制 Lazy loader方式在一些图片非常多的网站中非常有用,在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们
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加载文件。
有用 | 无用
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拆分字符串时产生空字符的解决方案
- JavaScript实现在数组中查找不同顺序排列的字符串
- 基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
- 基于NodeJS的前后端分离的思考与实践(五)多终端适配
- 基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
- 基于NodeJS的前后端分离的思考与实践(二)模版探索
- 基于NodeJS的前后端分离的思考与实践(一)全栈式开发
- 前端轻量级MVC框架CanJS详解
- alert出数组中的随即值代码
- jquery得到iframe src属性值的方法
- jquery获得同源iframe内body下标签的值的方法
- jquery 实现两Select 标签项互调示例代码
- $("").click与onclick的区别示例介绍
- Jquery设置attr的disabled属性控制某行显示或者隐藏
- javascritp添加url参数将参数加入到url中
- jQuery将多条数据插入模态框的示例代码
- jQuery如何获取同一个类标签的所有值(默认无法获取)
- jquery动态分页效果堪比时光网