图片加载错误的处理 img.onerror

在显示用户头像时,我们常常采用先加载后显示的策略,即在加载过程中显示loading.gif,待头像加载完成后再显示出来。这样做很好的提升了用户体验。但与此同时,偶尔也会出现一些问题,比如图片加载错误(网络问题或者服务器上根本无该用户头像),这个时候如果换掉loading.gif就会显示出一张有裂痕的图标(表示图片未加载成功),而如果不换掉loading.gif则会一直显示loading,对用户来说体验很差同时也是一种误导。

为了处理这个问题,我们引入了onerror事件,这个事件是img标签独有的,在图片加载错误时触发。这样一来,我们就可以在图片加载错误时将loading.gif替换为默认的图片(比如系统为用户提供的默认头像)。

绑定方式如下:

In HTML:

<img onerror="handler" src="http://leepiao.blog.163.com/blog/user.jpg" />

In JavaScript:

img.onerror = handler;

img.addEventListener ("error", handler, useCapture);

img.attachEvent ("onerror", handler);

时间: 2024-08-25 12:48:04

图片加载错误的处理 img.onerror的相关文章

图片加载错误处理

<script src="../public/js/jquery-1.8.3.js"></script> <title>预加载</title> <script type="text/javascript"> $(document).ready(function(){ $("img").each(function(i,e){ var imgsrc=$(e).attr("src&q

网页图片加载失败,用默认图片替换

$(function () { $('img').each(function () { $(this).bind('load', function () { $.Deferred().resolve(); }).bind('error', function () { //图片加载错误,加入错误处理 // dfd.resolve(); alert('error'); }) }) }) HTML代码 <body> <img src="/images/01.png" /&g

JQuery图片加载显示loading和加载失败默认图片

在很多时候我们需要用到图片加载功能,在网上搜资料后就想为了以后使用方便重新整理了下,结果如图: 最后一张是加载失败显示的图片,没找到合适的图片,先用他顶替. 页面引用 <div class="container"> <div class="row block" id="img-list"> <div class="col-md-3"> <img src="/Assets/On

常用图片加载框架

我们在项目中使用的是Picasso.其实现在的主流图片加载框架除了Picasso还有ImageLoader,Glide,以及Fresco.ImageLoader是比较老的框架了,稳定, 加载速度适中, 缺点在于不支持GIF图片加载, 使用稍微繁琐, 并且缓存机制没有和http的缓存很好的结合, 完全是自己的一套缓存机制.Glide是谷歌的一位工程师开发的,它可以说是Picasso的升级版, 有Picasso的优点, 并且支持GIF图片加载显示, 图片缓存也会自动缩放, 默认使用RGB_565格式

iOS开发&gt;学无止境 - 异步图片加载优化与常用开源库分析

作者:罗轩(@luoyibu) 网址:http://www.jianshu.com/p/3b2c95e1404f 1. 网络图片显示大体步骤:   下载图片 图片处理(裁剪,边框等) 写入磁盘 从磁盘读取数据到内核缓冲区 从内核缓冲区复制到用户空间(内存级别拷贝) 解压缩为位图(耗cpu较高) 如果位图数据不是字节对齐的,CoreAnimation会copy一份位图数据并进行字节对齐 CoreAnimation渲染解压缩过的位图 以上4,5,6,7,8步是在UIImageView的setImag

AngularJS中如果ng-src 图片加载失败怎么办

我们知道AngularJS加载图片的方法是用加ng-src标签,例如: <img ng-src="{{currentUrl}}"/> 其中currentUrl为图片地址,如果图片正常能显示,那这么使用一点问题没有,但是,如果图片加载失败了(例如该图片已经不存在,从而出现404错误),在该放图片的地方就会出现一个难看的图片加载失败图标,如果想把这个图标换成你自定义的图片,可以如下这么做: HTML: <img ng-src="{{currentUrl}}&qu

关于图片加载框架

接上篇,这篇开始对现在比较的流行的第三方图片加载框架做一个对比总结. 这篇文章介绍内容如下: 1.目前流行的图片加载框架有什么? 2.各自的使用方法 3.各自的优缺点 4.优化问题 一.目前流行的图片加载框架有什么? ImageLoader   Glide  Picasso  Fresso(2015年) 注:由于现在ImageLoader使用较少,本篇博文将不再对它进行阐述.主要以其它三个框架为主,有兴趣的同学可以自行学习. 二.各自的使用方法 Picasso:  Picasso .with(t

图片加载框架之ImageLoader

Android开发中,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于这些问题解决起来会比较吃力,比较著名的就是Universal-Image-Loader,该项目可以在于Github搜索到. 特征: 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 支持图

图片加载框架之Glide和Picasso

Glide介绍 Glide是一个加载图片的库,作者是bumptech,它是在泰国举行的google 开发者论坛上google为我们介绍的,这个库被广泛的运用在google的开源项目中. Glide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗. Picasso介绍(毕加索) picasso是Square公司开源的一个Android图形缓存库,地址http://square.github