miércoles, 23 de julio de 2008

"Out of memory at line 202"

En uno de los sitios web que mantengo, y sin razón aparente, empezó a aparecer un problema: al utilizar los botones del menú horizontal de la página principal, aparecía un mensaje de alerta con el texto "Out of memory at line 202". Al darle Aceptar a este mensaje, a veces, luego de varios segundos, continuaba con la carga normal de la página solicitada y a veces se colgaba la página. Además, este problema se daba en Internet Explorer, pero no en Firefox donde la página se mostraba sin inconvenientes.

Hice una búsqueda de esta alerta en Google y sólo encontré mensajes de gente preguntando por el problema, pero no encontré respuestas.

Así que empecé a buscar por mi cuenta (además de molestar por mail y teléfono a algunos amigos para ver si tenían alguna idea).

Borré todo el contenido de la sección principal de la página (o sea, dejé el cabezal, el pie y las columnas laterales) y, así, el menú funcionó normalmente. Así que empezé a "sitiar" el problema. Seguí probando, y borré solamente las 5 animaciones Flash que había en la página. El problema también se solucionó.

Así que en los .swf parecía estar el problema. Fui insertando nuevamente los Flash de a uno por vez, y, mientras fuera UNO SOLO la página funcionaba, sin importar cúal de los archivos Flash fuera. Cuando colocaba dos o más, volvía el problema.

Aquí está el código de cómo tengo incluidos los archivos .swf en la página:

<script type="text/javascript" src="swfobject.js"></script>
<div align="center">
<div id="intro5">Texto alternativo</div>
<script type="text/javascript">
var so = new SWFObject("nombre_del_archivo.swf", "arriba_izquierda", "360", "400", "6", "#ffffff");
so.write("intro5");
</script></div>

(Nota: esta forma de incluir un archivo Flash en un HTML surge como respuesta al "Caso Eolas").

Para cada una de las 5 animaciones, este código lo repetía cambiando el texto alternativo, el nombre del id y el nombre del archivo (lo que se muestra en negrita en el código de arriba).

La solución definitiva llegó cuando borré la línea
<script type="text/javascript" src="swfobject.js"></script>
de todas las animaciones, excepto la primera.

La página sigue funcionando bien en Firefox y ahora funciona bien en IE7.
Supongo que el cambio de comportamiento (ya que hasta la semana pasada, con las 5 reiteraciones de esa línea de código, en el IE7 funcionaba bien) debe estar causado por algún parche o actualización del IE.
Aún no sé si en versiones anteriores de IE se verá bien (yo tengo una versión de IE6 para Linux, y en ella también se ve bien la página).

No hay comentarios:

Publicar un comentario

Lo que escriba a continuación será revisado antes de publicarse.
Gracias por tus comentarios.