Internet Explorer innerHTML img cache bug

9 views
Skip to first unread message

Marcio Ghiraldelli

unread,
Aug 25, 2007, 3:57:00 PM8/25/07
to ar...@googlegroups.com
Alguém aqui já conseguiu contornar o problema do Internet Explorer não usar o cache para imagens inseridas por innerHTML (ou algum outro processo dinâmico)?

A solução descrita pela Microsoft não resolve:
http://support.microsoft.com/?scid=kb%3Ben-us%3B319546&x=8&y=8

e o mod_expires do Apache também não:
http://www.bazon.net/mishoo/articles.epl?art_id=958

No blog acima, o editor chegou à cogitar que essa falha (by design, de acordo com a Microsoft) é uma artimanha para aumentar o volume de hits do Internet Explorer contra outros navegadores, numa tentativa de se manter lider de mercado...

Irapuan Martinez

unread,
Aug 25, 2007, 4:02:14 PM8/25/07
to ar...@googlegroups.com
On 8/25/07, Marcio Ghiraldelli <marc...@gmail.com> wrote:
> No blog acima, o editor chegou à cogitar que essa falha (by design, de
> acordo com a Microsoft) é uma artimanha para aumentar o volume de hits do
> Internet Explorer contra outros navegadores, numa tentativa de se manter
> lider de mercado...

É ruim, heim? Tem alguém somando todos os hits dados pelo IE e o
declarando vencedor?

Ajax tem algum problema com cache? Dia desses recebi um alerta do
Gmail via IE: Recomendou que eu esvaziasse o cache, sob o risco do
Gmail parar de funcionar.

Boiei.

Marcio Ghiraldelli

unread,
Aug 25, 2007, 4:08:09 PM8/25/07
to ar...@googlegroups.com
Contar os hits talvez fosse uma forma grosseira de se medir a quantidade de navegadores utilizados pelos Internautas de todo o mundo... Olha que belezinha o Explorer faz no meu servidor, quando carrego uma árvore por innerHTML.
O Internet Explorer simplesmente esquece de olhar o cache...

.............
[25/Aug/2007:17:00:57 -0300] "GET /CMS/img/tree/empty.gif HTTP/1.1" 200 62
[25/Aug/2007:17:00:57 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:00:58 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:00:58 -0300] "GET /CMS/img/tree/join.gif HTTP/1.1" 200 69
[25/Aug/2007:17:00:58 -0300] "GET /CMS/img/tree/folder.gif HTTP/1.1" 200 976
[25/Aug/2007:17:00:58 -0300] "GET /CMS/img/tree/empty.gif HTTP/1.1" 200 62
[25/Aug/2007:17:00:58 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/join.gif HTTP/1.1" 200 69
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/folder.gif HTTP/1.1" 200 976
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/empty.gif HTTP/1.1" 200 62
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/join.gif HTTP/1.1" 200 69
[25/Aug/2007:17:00:59 -0300] "GET /CMS/img/tree/folder.gif HTTP/1.1" 200 976
[25/Aug/2007:17:01:00 -0300] "GET /CMS/img/tree/empty.gif HTTP/1.1" 200 62
[25/Aug/2007:17:01:00 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:01:00 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
[25/Aug/2007:17:01:00 -0300] "GET /CMS/img/tree/join.gif HTTP/1.1" 200 69
[25/Aug/2007:17:01:00 -0300] "GET /CMS/img/tree/folder.gif HTTP/1.1" 200 976
[25/Aug/2007:17:01:00 -0300] "GET /CMS/img/tree/empty.gif HTTP/1.1" 200 62
[25/Aug/2007:17:01:01 -0300] "GET /CMS/img/tree/line.gif HTTP/1.1" 200 66
.............

Em 25/08/07, Irapuan Martinez <ira...@gmail.com> escreveu:
(14) 3227-0392 - www.kaerea.com.br

Marcio Ghiraldelli

unread,
Aug 26, 2007, 12:35:16 PM8/26/07
to ar...@googlegroups.com
Consegui contornar o problema do cache das imagens criadas dinamicamente por innerHTML ou DOM, através de uma dica da própria Microsoft:

http://support.microsoft.com/?scid=kb%3Ben-us%3B319546&x=8&y=8



Em 25/08/07, Marcio Ghiraldelli < marc...@gmail.com> escreveu:

Alexandre Paixão

unread,
Aug 28, 2007, 1:43:25 PM8/28/07
to ar...@googlegroups.com
Marcio,

se importa em postar a solução(código) que você desenvolveu?

Em 26/08/07, Marcio Ghiraldelli <marc...@gmail.com > escreveu:

Marcio Ghiraldelli

unread,
Aug 28, 2007, 3:33:54 PM8/28/07
to ar...@googlegroups.com
Sem problemas, Alexandre! Na verdade, só segui o workaround (gambiarra) que a própria Microsoft recomendou.
Aqui tem exemplo e explicações:
http://marcio-gh.blogspot.com/2007/08/microsoft-internet-explorer-bug-de.html

Em 28/08/07, Alexandre Paixão < axelo...@gmail.com> escreveu:

Adriano Bonat

unread,
Aug 28, 2007, 10:34:53 PM8/28/07
to ar...@googlegroups.com
Um problema parecido pelo qual passei (citado como problema #2 neste post):
http://tanob.blogspot.com/2007/04/concordo-ie6-deve-morrer.html

Ateh mais.

Alexandre Paixão

unread,
Aug 29, 2007, 8:57:34 AM8/29/07
to ar...@googlegroups.com
Valeu, Marcio!

Em 28/08/07, Marcio Ghiraldelli <marc...@gmail.com> escreveu:

André Cupini

unread,
Oct 3, 2007, 10:27:18 AM10/3/07
to ar...@googlegroups.com
Ressuscitando o tópico, segue uma solução um pouco mais "elegante" para o bug (by design) de cache de imagens dinâmicas do IE.

Receita do bolo:

- Div, com várias tags "img" dentro.
- Javascript:
var contador_img = 0;
var preload_imgs = document.getElementById("div_com_as_imagens").getElementsByTagName("img");
var total_img = preload_imgs.length;
for (var i = 0; i < total_img; i++) {
  preload_imgs[i].onLoad = countImgs();
}

function countImgs() {
  contador_img++;
  if (contador_img == total_img) {
    addImgs();
  }
}


Referência: http://marcio-gh.blogspot.com/2007/08/microsoft-internet-explorer-bug-de.html

--
André Cupini - Diretor de Programação
Kaérea  -  Agência de Internet
http://www.kaerea.com.br - (14) 3227-0392


Em 28/08/07, Marcio Ghiraldelli <marc...@gmail.com> escreveu:
Sem problemas, Alexandre! Na verdade, só segui o workaround (gambiarra) que a própria Microsoft recomendou.
Reply all
Reply to author
Forward
0 new messages