在使用ExtJS時(shí),我們往往需要在使用之前加入這么一句:
Ext.BLANK_IMAGE_URL = "....."其中省略部分為s.gif在extjs包中的路徑。
那么ExtJS為什么要設(shè)置這樣一個(gè)變量呢?如果我們不這樣做會(huì)帶來什么后果?
首先說后果:
如果沒有以上那句代碼,Ext會(huì)按照默認(rèn)的地址:http://www.extjs.com/s.gif去下載這張圖片,由于網(wǎng)絡(luò)不通或者速度較慢等原因,可能導(dǎo)致這張圖片加載不成功,造成頁面上很多小白條。
設(shè)置這個(gè)變量的原因:
原來ExtJS中在創(chuàng)建組件的時(shí)候,組件中需要替換圖標(biāo)的地方,初始化時(shí)都是拿這個(gè)s.gif替代的,如果用戶指定icon屬性,它會(huì)將s.gif替換為icon的地址,說白了,s.gif就是一個(gè)占位的功能。
另外,如果看過ExtJS的源代碼可能發(fā)現(xiàn),它對(duì)于ie和air的默認(rèn)實(shí)現(xiàn)是去url請(qǐng)求這張圖片,而對(duì)于其它瀏覽器則直接使用圖片解碼,這是因?yàn)閕e和air不支持圖片解碼。
----------------------------------------------------------------------------------------------------------
Ext.BLANK_IMAGE_URL
圖片位置默認(rèn)指向:
/resources/images/default/s.gif'
最近在看Ext中jack的window導(dǎo)航式例時(shí),看到一個(gè)細(xì)節(jié),讓我頓時(shí)明白了作者的這一做法的初衷。
作者在對(duì)一些需要應(yīng)用圖片或者圖標(biāo)的地方,都沒有顯式寫明要應(yīng)用的圖標(biāo)(片)路徑,
而都是通過css來配置,許多應(yīng)用圖標(biāo)的地方剛開始都Ext.BLANK_IMAGE_URL來替代,
而在css在加載之后就會(huì)替換到真實(shí)的圖標(biāo)路徑 。
這一招就徹底解決了界面的換膚問題。