1. 示例代码

/*
* <img id="idTestImg" src="/static/test.png" />
*/
var idTestImg = document.getElementById('idTestImg');
var tmpImgObj = new Image(); // 也可以使用document.creatElement('img'); 创建效果是一样的。 tmpImgObj.src = '/static/new.png'; // 这个操作会触发从服务器请求图片的行为 if (tmpImgObj.complete) {
// 判断图片是否存在缓存中,缓存中的图片不需要onload操作
idTestImg.src = tmpImgObj.src;
} else {
// 不在缓存中的图片,下载完成之后,会触发load事件,在onload事件处理程序中,完成替换图片功能。
tmpImgObj.onload = function () {
idTestImg.src = tmpImgObj.src;
};
}

2. 说明

  • 图像对象的创建方式有两种:new Image(); document.createElement('img');
  • 给图像对象的src属性赋值,会触发浏览器向服务器请求图片资源的过程;
  • 图片可能在缓存中,也可能来自服务器请求过来的资源,complete属性可以判断;
  • load事件除了可以使用在body对象,也可以使用在img对象上。
  • 可以不创建一个临时对象:直接将idTestImg.src赋值给一个url值,同样能够达到以上的效果。

最新文章

  1. ELK日志系统:Filebeat使用及Kibana如何设置登录认证
  2. C# Image Resizer
  3. 打印log
  4. [转] linux虚拟带库操作笔记
  5. html5 canvas雨点打到窗玻璃动画
  6. Material Design综合实例
  7. laravel Authentication and Security
  8. The type or namespace name &#39;****&#39; could not be found (are you missing a using directive or an assembly reference
  9. 清除mac上安装软件的用户信息
  10. Nginx学习之一-第一个程序Hello World
  11. Python 基础学习20151201
  12. 《算法导论》读书笔记之图论算法—Dijkstra 算法求最短路径
  13. CodeForces 621A Wet Shark and Odd and Even
  14. java Semaphore的介绍和使用
  15. nginx80端口被占用,启动失败。
  16. canvas 时钟动画
  17. Angular调用Asp.net Core JWT Authentication接口
  18. MySQL常用命令(二)
  19. c语言单片机中断服务程序
  20. [转贴]LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project

热门文章

  1. PHP压缩文件夹的方法
  2. SpringBoot 2.x版本+MultipartFile设置指定文件上传大小
  3. Spring 框架常用语法进行总结
  4. 如何在 PHP 和 Laravel 中使用 Traits
  5. python:类3——魔法方法
  6. 0MQ讲述多线程魔法
  7. 将Swagger2文档导出为HTML或markdown等格式离线阅读
  8. 使用boost实现线程池thread pool | boost thread pool example
  9. 听说PHP的生成器yield处理大量数据杠杠的
  10. 扛把子 选题 Scrum立会报告+燃尽图 03