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