手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >多种js图片预加载实现方式分享
多种js图片预加载实现方式分享
摘要:图片预加载有大体有几种方式 1.html标签或css加载图片显而易见我们使用img标签或者通过标签的background-image属性都可...

图片预加载有大体有几种方式

 1.html标签或css加载图片

显而易见我们使用img标签或者通过标签的background-image属性都可以实现图片的预加载。但是为了避免初次载入过多图片影响体验。一般最好在文档渲染完成以后再加载(使用window.onload等)。

 2.纯js实现预加载

空城计-Code记的Javascript实现图片的预加载的完整实现的预加载实例为

function preloadimages(arr){ var newimages=[], loadedimages=0 var postaction=function(){} //此处增加了一个postaction函数 var arr=(typeof arr!="object")? [arr] : arr function imageloadpost(){ loadedimages++ if (loadedimages==arr.length){ postaction(newimages) //加载完成用我们调用postaction函数并将newimages数组做为参数传递进去 } } for (var i=0; i

原理就是循环创建Image对象,并设置对象的src为指定图片,然后监听图片加载完成onload = function(){imageloadpost()},当图片加载完成后就会执行到imageloadpost。原来IE6还有一个问题:如果预加载的图片已经在内存中则不会再次出发img.onload事件。但是IE7+都没有问题了。其他浏览器也没有问题,所以上面这种img.onload监听事件已经没有兼容问题了。

 3.Ajax实现预加载

ajax请求是任何数据都可以请求的,图片也不例外。先看一下js/css预加载

// XHR to request a JS and a CSS var xhr = new XMLHttpRequest(); xhr.open('GET', 'domain.tld/preload.js'); xhr.send(''); xhr = new XMLHttpRequest(); xhr.open('GET', 'domain.tld/preload.css'); xhr.send('');

而图片的ajax预加载实际和纯js预加载图片一样

new Image().src = "domain.tld/preload.png";

只不过这里的解释成了ajax加载,可以理解new Image都是ajax get请求。

以上就是本文的全部内容,希望对大家理解js图片预加载有所帮助。

【多种js图片预加载实现方式分享】相关文章:

javascript带回调函数的异步脚本载入方法实例分析

javascript实现图片跟随鼠标移动效果的方法

基于jquery实现下拉框美化特效

Jquery实现动态切换图片的方法

JQuery中上下文选择器实现方法

jQuery预加载图片常用方法

图片加载进度实时显示

JQuery分屏指示器图片轮换效果实例

JQUERY表单暂存功能插件分享

jQuery处理图片加载失败的常用方法

精品推荐
分类导航