前兩天定位一個用戶瀏覽器卡死問題,一打開頁面就卡的很死,毫無反應(yīng),用httpwatch抓包的話就和IE死在一起了,沒法子用fiddler抓包,發(fā)現(xiàn)下載到一個png圖片的時候,由于dns解析問題,改png圖片指向了海外服務(wù)器,無法下載完成,此時瀏覽器不是跳過這個圖片往下走,而是就卡在該處,也不對用戶操作有任何響應(yīng)。如果設(shè)法讓該請求返回一個png圖片,瀏覽器立刻就回復(fù)了正常。
究其原因,是IE6下面要使用半透明png圖片,就躲不開神奇的DXImageTransform.Microsoft.AlphaImageLoader濾鏡。不管你是用所謂的腳本方式還是htc方式,都一樣。而這個濾鏡在開始工作的時候,IE6必須老老實實停下來等它完成。由此杯具就誕生了。
考慮到用戶環(huán)境的復(fù)雜性,如果真的要做一個穩(wěn)定可用的在線web應(yīng)用,還是盡量避免使用濾鏡去渲染半透明的png圖片吧。哪怕在IE六下給一個降級的解決方案呢(不透明圖片?透明gif?),或者干脆先下載好圖片再應(yīng)用濾鏡(如果用js或者h(yuǎn)tc方案的,更可以考慮把這個檢測加進(jìn)去)。