在开发中,我们经常有异步加载图片的请求,然后在图片加载成功后做一些操作,一般我们通过onload方法来实现.网上有两种写法,大家可以先看一下(注:logo.jpg是张本地图片):

例子1:

var img = new Image();

img.src = "logo.jpg";

img.onload = function () {

alert("image is loaded");

};

document.body.appendChild(img);

例子2:

var img = new Image();

img.onload = function () {

alert("image is loaded");

};

img.src = "logo.jpg";

document.body.appendChild(img);

发现什么了没有?上面两个例子最大的差别就在于onload和src赋值的先后顺序.那么onload和src赋值的先后顺序会在实际中产生什么差别呢?

产生这个问题的原因很简单,就是因为logo.jpg是本地图片,导致浏览器加载起来非常快,几乎在给img赋值src的时候,图片就已经加载完成,同时触发了onload事件,代码中为onload赋值的语句就相当于在onload事件发生后,这时候已经晚了.

将src写到了onload的前面,会导致onload来不及赋值就被执行了,所以正确的写法应该是第2个例子.既在给图片分配地址前,先绑定好它的onload事件,这样就不用担心错过时机的问题了.

正确的例子:

var img = new Image();

// 如果文档装入完成后加载用window load

//window.addEventListener("load" , function(){

// document.body.appendChild(img);

//} , false);// 如果图片加载完毕用 img load

img.addEventListener('load', function(){

document.body.appendChild(img);

} , false);img.src = 'test.png';

html异步加载图片,javascript-img异步加载图片相关推荐

  1. HTML如何变换背景图片,javascript如何更改网页背景图片?

    JavaScript中更改网页背景图片可以通过style对象的backgroundImage属性来实现.语法为Object.style.backgroundImage=url(URL). JavaSc ...

  2. java 无法加载资源,JavaScript:无法加载资源:服务器响应状态为404(未找到)

    我处理 JavaScript 应用程序,该应用程序在 https://localhost:63342/WalletClient/index.html_ijt=k4ock08pqsve8hb7b2b34 ...

  3. iOS开发swift版异步加载网络图片(带缓存和缺省图片)

    iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下: ...

  4. android listview 图片闪烁,listView异步加载图片导致图片错位、闪烁、重复的问题的解决...

    androidListView是android中重要的控件,几乎每一个项目都会用到.但是在使用中我们避免不 了会出现一些问题,包括一些滑动事件的处理,例如:ListView中嵌套scrollView, ...

  5. java 多线程数据异步加载图片_JAVA多线程超时加载当网页图片

    先上图: 这一次没有采取正则匹配,而采取了最简单的java分割和替代方法进行筛选图片 它能够筛选如下的图片并保存到指定的文件夹 如: "http://xxxx/xxxx/xxx.jpg&qu ...

  6. php+js实现异步图片上传,JavaScript实现异步图像上传功能

    当向服务器上传图像时,根据服务器操作的复杂性和服务器性能,需要几秒钟到几分钟的时间来完成.本文的重点是在图像上传至服务器时使用JavaScript立即显示图像. 介绍 当使用JavaScript将图像 ...

  7. cesium 3dtiles 加载本地数据_深入echarts学习:加载跨域、异步、本地json数据的防坑录

    1 说明: ===== 1.1 推荐指数:★★★★ 1.2 网上这方面说明,大多模棱两可,坑很多,讲透彻的不多,故本人做一个小结. 1.3 我曾介绍echarts的简单基本用法: <Echart ...

  8. dede文章异步ajax加载,织梦DedeCMS列表“加载更多”“无限下拉”Ajax加载使用方法...

    Infinite Ajax Scroll 简称 ias,无限的ajax滚动,是一款jQuery滚动ajax分页插件,当页面滚动到容器可见部分将自动异步加载数据. 下面先来看看效果. 无限下拉效果 点击 ...

  9. html 加载高德地图,vue异步加载高德地图

    几种加载js的方式 同步加载 异步加载 延迟加载 同步加载 用的最多的一种方式,又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作.所以默认同步执行才是安全的 ...

  10. php js 异步上传图片,javascript实现异步图片上传方法实例

    如何通过javascript写出异步图片上传?本文我们就和大家分享一些实例代码javascript实现异步图片上传.我们首先看下HTML代码实现的form提交部分.其中大家在测试的时候需要把test的 ...

最新文章

  1. 什么是壳 - 脱壳篇01
  2. CentOS7.5下yum安装MySQL8图文教程
  3. 施有朋:人工智能崛起,AI赋能医疗领域,创业者该如何选择
  4. centos7升级自带的php5.4版本到php5.6
  5. python3 异常嵌套
  6. python 简易HTTP服务器搭建
  7. Atitit截屏功能的设计解决方案
  8. ppp协议pap验证过程状态转移图_硬核分享|Crust 核心协议栈的设计与实现
  9. flink 1.9.0 编译:flink-fs-hadoop-shaded 找不到
  10. Docker Get Started VI
  11. 借助Bilibili Evolved批量下载b站视频
  12. oracle 10g varchar2与varchar有什么区别
  13. 使用Breed为极路由4增强版(B70-HC5962)刷老毛Padavan固件,配置Nginx代理SSH内网映射
  14. vue报错“NavigationDuplicat: Avoided redundant navigation to current location”解决方法
  15. 泰拉瑞亚 服务器linux,泰拉瑞亚Linux主机打造指南
  16. 迁移学习对医疗图像的影响(Transfusion: Understanding Transfer Learning for Medical Imaging)
  17. linux搭建网站教程详解
  18. 《新一代视频压缩编码标准H.264/AVC》
  19. 手把手教你使用R语言做LASSO 回归
  20. 血战力扣 332.零钱兑换

热门文章

  1. linux 中文 gb32,《GB∕T 32394-20.15 信息技术 中文Linux操作系统运行环境扩充要求》.pdf...
  2. 织梦城市分站怎么安装织梦二级域名站群织梦制作企业分站教程
  3. seo优化 什么是关键词密度和关键词堆砌
  4. 恰果果囖!测评CSDN浏览器助手--chrome插件
  5. 由数字、26个英文字母或者下划线组成的字符串:
  6. 基于Attention的机器翻译模型,论文笔记
  7. mysql my.ini 配置
  8. 手把手带你了解80C51(持续更新)
  9. 金蝶EAS本地WebService发布
  10. 实用 POI工具类(Spring boot)