`
kalogen
  • 浏览: 865370 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ExtJS中BLANK_IMAGE_URL的由来

    博客分类:
  • EXT
 
阅读更多
在使用ExtJS时,我们往往需要在使用之前加入这么一句:

Ext.onReady(function() {
Ext.BLANK_IMAGE_URL = '/images/s.gif';
....

Ext.BLANK_IMAGE_URL = "....."其中省略部分为s.gif在extjs包中的路径。

那么ExtJS为什么要设置这样一个变量呢?如果我们不这样做会带来什么后果?

首先说后果:

如果没有以上那句代码,Ext会按照默认的地址:http://www.extjs.com/s.gif去下载这张图片,由于网络不通或者速度较慢等原因,可能导致这张图片加载不成功,造成页面上很多小白条。

设置这个变量的原因:
原来ExtJS中在创建组件的时候,组件中需要替换图标的地方,初始化时都是拿这个s.gif替代的,如果用户指定icon属性,它会将s.gif替换为icon的地址,说白了,s.gif就是一个占位的功能。

另外,如果看过ExtJS的源代码可能发现,它对于ie和air的默认实现是去url请求这张图片,而对于其它浏览器则直接使用图片解码,这是因为ie和air不支持图片解码。

源码如下:
Java代码 
BLANK_IMAGE_URL : Ext.isIE6 || Ext.isIE7 || Ext.isAir ?  
'http:/' + '/www.extjs.com/s.gif' :  
'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==' 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics