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