IE, Javascript y los memory leaks
29/06/2008 a las 06:47 por ShoxRecuerdo del blog de Omatech, un problema que tuvo David con los memory leaks del Internet Explorer 6 usando Javascript.
Traduzco al castellano el problema la solución:
“…la navegación por la web era fluida por Firefox e Internet Explorer, pero pasaba a ser excesivamente lenta en el segundo después de algunas iteraciones.
Despues de varias pruebas, encontra algo interesante:IE: Where’s my memory?. Segun parece Internet Explorer no gestiona bien los closures en Javascript de forma que el garbage collector automático utilizado en el ECMAScript no funciona como debería en Internet Explorer. Podemos encontrar una buena explicación de que es un closure en IE: Where’s my memory? o en Javascript Closures.
Una vez echo los cambios en varios sitios, la navegación era ligeramente más fluida, pero el problema seguía estando. ¿Que podría ser? Finalmente, lo que parecía ser como isolate-your-code-developing, encontre el problema, i como sucede a menudo resultaba ser menos importante de lo que podíamos pensar (ahora es fácil decirlo). En la web se utilizaba un javaScript con el tag de inicio siguiente:
<script language="javascript">En cambio, según las especificaciones de W3C, el atributo language está en desuso, i en su lugar instan en utilizar el atributo type, que por otra parte, es obligatorio. Así que el tag de inicio mínimo deberia de ser:
<script type="text/javascript">Este cambio resuelve finalmente el problema planteado…”
Con este ejempo podemos ver la importancia de que las especificaciones están para algo, y que ampararse en lo que uno aprendio hace 8 o 10 años no tiene sentido.