Cosas web, algunas úles, algunas buenas.
Fushioko, tiendas de productos de Asia

jueves, febrero 09, 2006

Uso de iframes y scripts en una aplicación web

Me sigo sorprenciendo cuando entro en un proyecto nuevo y veo que quién ha hecho el diseño ha usado frames, dividiendo la página en varias partes y estas a su vez también divididas en otras. Cuando estamos creando una aplicación web suele ser necesario dividir la pantalla en distintas zonas para separar las funcionalidades, pero las divisiones es mejor realizarlas mediante iframes, más que con frames.
Por ejemplo, para mostrar varias tablas con datos que se obtienen con consultas propias, es preferible crear una página para cada consulta, que muestran únicamente esa información, y no que sea una sola página que muestre todas las tablas. Haciendo lo primero podemos trabajar con cada tabla de forma independiente y no tendremos la necesidad de recargar todas las tablas para actualizar solo una.
Para mí la diferencia fundamental es que los frames dividen la pantalla, mientras que los iframes dividen el documento.


En el caso de los frames, supongamos que el menú ocupa de alto más que la ventana, haciendo aparecer un scroll (algo que de por sí no es muy estético), y si el frame con las tablas también ocupa de alto más que la ventana, aparecerá otro scroll, ya serían dos scrolls, que para mi gusto demasiados. En el caso de los iframes, solo habría un scroll, ya sea motivado por el menú o las tablas .
Otro aspecto importante es que con iframes puedes usar el diseño en la página contenedora y que los iframes se acomoden a este diseño (por ejemplo, si el iframe contiene únicamente una tabla, tan solo es necesario dibujarla y no necesitas preocuparte de la imagen del fondo de la página, si es que la usas). Sin embargo, con los frames, debes acoplarlos para que el diseño no se descuadre.
Por último decir que los scripts generales de la aplicación deberían estar contenidos en la página principal y desde los iframes hacer referencia a las funciones mediante parent.[nombre-funcion](), centrando así toda la ejecución de procesos en un único sitio. Los scripts específicos de cada iframe si se deben introducir en la propia página, no sobrecargando así la página principal.
Supongo que se podría profundizar más en el tema, indicando pros y contras, citando otros casos, ... esto es tan solo un comienzo que espero ir ampliando.

5 Comentarios:

  • Pues yo opino, que no se deberían usar frames ni tampoco iframes. Lo mejor y más adecuado es XHTML+CSS y un poquito de Ajax.

    Por Anonymous Anónimo, a las 2/20/2006 01:38:00 p. m.  

  • Bueno, yo no creo que siempre se puedan quitar los marcos (sean frames o iframes) de una aplicación web. Pero si que cuanto menos se use, mejor que mejor.
    Si te doy la razón en que mejor usar XHTML+CSS y Ajax, pero cuando se tiene que usar iframes, pues se usan, no pasa nada.
    Aplicaciones como Google Maps o GMail usan frames (GMail) e iframes (G. Maps) y creo que son grandes aplicaciones.

    Por Anonymous Luis, a las 2/20/2006 02:19:00 p. m.  

  • Por que la gente considera que no es usable utilizar frames?

    Por Anonymous Anónimo, a las 2/22/2006 04:08:00 a. m.  

  • Como dicen en el primer comentario, lo mejor es no usar frames (normales o inline), ya que pueden dar problemas, a la hora de los "marcadores" o a la hora de imprimir, o que complica el desarrollo, etc... Pero yo sigo diciendo, que si se tienen que usar, pues no pasa nada, eso sí, mejor iframes que frames, son mejores.

    Aquí te dejo un enlace que habla de por qué son malos, eso sí, tu haz lo que te de la gana, con tal de que quede un diseño bueno y limpio.

    http://www.yourhtmlsource.com/frames/goodorbad.html

    Por Anonymous Luis, a las 2/22/2006 08:41:00 a. m.  

  • Hola a todos,

    Yo trabajo en con una aplicación que abusa tanto de frames como de iframes cuando con unas capas posicionadas con CSS se puede conseguir un código mucho mas limpio y un posicionamiento de las mismas mucho mas preciso, además dan muchiiisimos problemas al utilizarlos con DOM. No digo que no se usen pero si que se piense bien antes de hacerlo.

    Por Anonymous Javi, a las 2/01/2008 11:37:00 a. m.  

Publicar un comentario

<< Inicio