… 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:
- Existe uma tela “A” que contém uma table onde são adicionadas os itens;
- 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

