js预加载图片方法汇总


Posted in Javascript onJune 15, 2015

本文实例汇总了js预加载图片方法。分享给大家供大家参考。具体分析如下:

1. 纯CSS:

#preload-01 {
background: url(http://domain.tld/image-01.png) no-repeat -9999px -9999px;
}
#preload-02 {
background: url(http://domain.tld/image-02.png) no-repeat -9999px -9999px;
}
#preload-03 {
background: url(http://domain.tld/image-03.png) no-repeat -9999px -9999px;
}

2. JS+CSS优化:

// better image preloading @ http://perishablepress.com/press/2009/12/28/3-ways-preload-images-css-javascript-ajax/
function preloader() {
  if (document.getElementById) {
    document.getElementById("preload-01").style.background = "url(http://domain.tld/image-01.png) no-repeat -9999px -9999px";
    document.getElementById("preload-02").style.background = "url(http://domain.tld/image-02.png) no-repeat -9999px -9999px";
    document.getElementById("preload-03").style.background = "url(http://domain.tld/image-03.png) no-repeat -9999px -9999px";
  }
}
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(preloader);

3. JS代码1:

<div class="hidden">
  <script type="text/javascript">
    <!--//--><![CDATA[//><!--
      var images = new Array()
      function preload() {
        for (i = 0; i < preload.arguments.length; i++) {
          images[i] = new Image()
          images[i].src = preload.arguments[i]
        }
      }
      preload(
        "http://domain.tld/gallery/image-001.jpg",
        "http://domain.tld/gallery/image-002.jpg",
        "http://domain.tld/gallery/image-003.jpg"
      )
    //--><!]]>
  </script>
</div>

4. JS代码2:

<div class="hidden">
  <script type="text/javascript">
    <!--//--><![CDATA[//><!--
      if (document.images) {
        img1 = new Image();
        img2 = new Image();
        img3 = new Image();
        img1.src = "http://domain.tld/path/to/image-001.gif";
        img2.src = "http://domain.tld/path/to/image-002.gif";
        img3.src = "http://domain.tld/path/to/image-003.gif";
      }
    //--><!]]>
  </script>
</div>

5. JS代码优化2:

function preloader() {
  if (document.images) {
    var img1 = new Image();
    var img2 = new Image();
    var img3 = new Image();
    img1.src = "http://domain.tld/path/to/image-001.gif";
    img2.src = "http://domain.tld/path/to/image-002.gif";
    img3.src = "http://domain.tld/path/to/image-003.gif";
  }
}
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(preloader);

6. Ajax代码1:

window.onload = function() {
  setTimeout(function() {
    // XHR to request a JS and a CSS
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://domain.tld/preload.js');
    xhr.send('');
    xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://domain.tld/preload.css');
    xhr.send('');
    // preload image
    new Image().src = "http://domain.tld/preload.png";
  }, 1000);
};

7. Ajax代码2:

window.onload = function() {
  setTimeout(function() {
    // reference to <head>
    var head = document.getElementsByTagName('head')[0];
    // a new CSS
    var css = document.createElement('link');
    css.type = "text/css";
    css.rel = "stylesheet";
    css.href = "http://domain.tld/preload.css";
    // a new JS
    var js = document.createElement("script");
    js.type = "text/javascript";
    js.src = "http://domain.tld/preload.js";
    // preload JS and CSS
    head.appendChild(css);
    head.appendChild(js);
    // preload image
    new Image().src = "http://domain.tld/preload.png";
  }, 1000);
};

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jquery键盘事件介绍
Jan 31 Javascript
jQuery数组处理方法汇总
Jun 20 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
解析js如何获取当前url中的参数值并复制给input
Jun 23 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
Dec 31 Javascript
Javascript实现跑马灯效果的简单实例
May 31 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
jquery插件bootstrapValidator表单验证详解
Dec 15 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
纯js封装的ajax功能函数与用法示例
May 14 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
Aug 16 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
jquery实现兼容IE8的异步上传文件
Jun 15 #Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 #Javascript
jQuery实现自动调整字体大小的方法
Jun 15 #Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 #Javascript
Jquery简单实现GridView行高亮的方法
Jun 15 #Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 #Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 #Javascript
You might like
一段php加密解密的代码
2006/10/09 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
kmock javascript 单元测试代码
2011/02/06 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
使用tensorflow实现AlexNet
2017/11/20 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
初三家长会邀请函
2014/01/18 职场文书
师生聚会感言
2014/01/26 职场文书
婚礼主持词
2014/03/13 职场文书
实习指导老师评语
2014/04/26 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
2014年仓库工作总结
2014/11/20 职场文书
超市收银员岗位职责
2015/04/07 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
导游词之太湖
2019/10/08 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript