[IE] AlphaImageLoaderは表示をロックする場合があるようです

メモ。

IE6で透過PNGを表示しようと思うと、どうしても、ActiveXのフィルタである、AlphaImageLoaderを使う事になる。
CSSで次のような指定をするわけナンだが、


filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="xxx.png");


これが時折表示をロックしてしまうケースがあるらしい。
具体的には画面が真っ白けになる。

どういう時に発生するかってーと、アレだ。
このAlphaImageLoaderが同時にいくつもコネクションを張って表示しようとした時、コネクションを張ることができなかった場合に発生するらしい。


この辺は実の所、バッドノウハウとして有名っぽいですな。
ちょっと観点は違いますが、こういう事も記事になってるわけで。

 Best Practices for Speeding Up Your Web Site
  http://developer.yahoo.com/performance/rules.html#no_filters


The IE-proprietary AlphaImageLoader filter aims to fix a problem with semi-transparent true color PNGs in IE versions < 7. The problem with this filter is that it blocks rendering and freezes the browser while the image is being downloaded. It also increases memory consumption and is applied per element, not per image, so the problem is multiplied.

The best approach is to avoid AlphaImageLoader completely and use gracefully degrading PNG8 instead, which are fine in IE. If you absolutely need AlphaImageLoader, use the underscore hack _filter as to not penalize your IE7+ users.



IE7ではこの辺の処理が整理されているので、問題ないようです。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック