Quando o IE trabalha corretamente…

{ January 7th, 2008 }


cmilfont

Autor: cmilfont

… e o Firefox não!

Hoje conversando com Rafael Ponte sobre um problema que ele estava enfrentando (em um sistema legado que ele dá manutenção) descobrimos que o IE esvazia todas as referências de um frame quando uma janela popup é fechada. Que é o correto, e o firefox não esvazia.

Isso para mim se caracteriza como um Memory Leak.

A situação era o seguinte:

  1. Existe uma tela “A” que contém uma table onde são adicionadas os itens;
  2. Existe um Popup que funciona como um filtro dos itens e devolve o item selecionado para a tela A anterior;

O problema específico era que a chamada window.opener.addMedico(json) no popup acrescentava um objeto (que chamo de json aqui) a uma variável global (um array) que funciona como cache na tela “A”. No IE quando o popup era fechado a referência desaparecia do array, no Firefox não.

Esse deveria ser o comportamento correto, imagina que eu fecho uma janela e as referências não são esvaziadas? Memory Leak quer queira ou não. Ter que esvaziar todas as referências manualmente se caracteriza sim como Memory Leak.

Desconsideram o uso de Popups em pleno ano da graça do nosso senhor de 2008, não comentem nada para não entristecer ainda mais nosso amigo Rafael. Agora que o pessoal vai começar a sofrer com legado WEB com tantos “escondidos.jsp“.

Posted in JavaScript ~ 2 Comments

Adicionar ao Rec6