Tipos de frames
Un frame es un área de una página web que despliega otra página
web. Una página con frames se define como un frameset y se
divide en áreas que contienen subpáginas web distintas.
También se habla de iframes o
inline frames para referirse a los frames embebidos en páginas
web. Este tipo de frames se introdujo con Internet Explorer 3.0.
En HTML, un frame se hace con un código similar a
este:
<FRAMESET rows="50%,*" >
<FRAME src="page1.html" name="frame1">
<FRAME src="page2.html" name="frame2">
</FRAMESET>
(más ejemplos en
http://wp.netscape.com/assist/net_sites/frame_syntax.html)
El iframe es muy similar:
<iFRAME src="contents_of_frame.html" FRAMEBORDER="0"
SCROLLING="auto" name="myInlineFrame">
</iFRAMESET>
¿Por qué se usan los frames?
En general se usan para mantener un área común
y tener inmersa otra página que puede cambiar independientemente de las otras
páginas en las otras áreas del frameset.
Históricamente en HTML se usaban para poder tener áreas
comunes en varias páginas. Ej: cabezal y menús. De esta manera, se actualiza una
sola página web y este cambio se refleja en todas las páginas del sitio que
tengan frames.
Pros
- Reduce la cantidad de tráfico desde el servidor, que
tiene como consecuencia para el usuario que las páginas se descargan más
rápidamente.
- Independiza el área de navegación y áreas comunes de
todas las páginas en un sitio con el contenido de las mismas
- Ayuda a mantener actualizadas las áreas comunes (ej:
navegación)
Hay un artículo muy interesante que habla sobre las
bondades de usar frames e iframes: http://www.theonestopwebsiteshop.com/web-design/reduce-traffic-by-frames.htm
Contras
- No permite indexar bien las páginas en los buscadores
de Internet. Muchos buscadores indexan la página
dentro del frame y el frameset de la misma en forma independiente, por lo que
pueden listar la página dentro del frame como una página raíz similar a muchas
otras, por lo que los usuarios accederán a esa sin ver la página contendedora.
Esto no es lo deseable cuando se diseña una página con frames, ya que el
frameset tiene información sumamente importante como la identificación del
sitio y todo el sistema de navegación para moverse dentro del
mismo.
- Muchos buscadores no indexan páginas con frames.
O sea que su sitio no va a estar listado en los
buscadores para que los potenciales clientes lo encuentren.
- No se puede usar el botón de back.
- No se puede agregar correctamente la página a mi lista
de favoritos, ya que se agrega solo la página padre, independientemente de
cómo yo haya navegado en la página contenida en el frame.
- No se puede enviar la url de la página a un amigo y que
la vea exactamente como la veo yo, ya que como en el punto anterior, le
mandaría la url de la página padre.
- No se puede imprimir bien la página contenida en el
frame en muchos casos.
- Se encuentran muchos problemas con las búsquedas dentro
de los sitios.
- Los browsers viejos que no soportan frames directamente
no los despliegan.
- No siempre se puede mostrar al usuario donde está en el
sistema de navegación del sitio
- Las áreas de frames se fijan independientemente del
tamaño de la página contenida en el frame, por lo que si esta página es más
chica que el tamaño fijado, se está desperdiciando espacio en el frameset que
podría ser usado para dar mas información al usuario, o si la página es más
grande, se despliegan barras de desplazamiento.
- Los frames despliegan barras de desplazamiento
independientes del frameset cuando la página contenida es más grande que el
frame que la contiene. Si bien se puede configurar para evitar que estas
barras aparezcan , en la mayoría de los casos se despliegan, o no muestran
completamente el contenido de la página dentro del frame si el usuario tiene
una configuración de su pantalla no esperada o cambia el tamaño de la ventana
del navegador.
Las consecuencias de esto son:
- Confunden al usuario y hacen que se sienta
perdido
- Necesitan espacio para mostrarse, por lo que muchas
veces quedan sobre el contenido de la página haciendo que el usuario tenga que
desplazarse constantemente para leer el contenido de la página inmersa en el
frame.
- Hacen que el usuario pierda tiempo moviéndose con las
barras de desplazamiento para llegar al contenido que quieren
- Muchos usuarios evitan usar estas barras y no
encuentran el contenido que buscan.
Mi consejo:
Evitar el uso de frames siempre que se pueda, ya que estar listados
correctamente en las herramientas de búsqueda hace la diferencia entre tener o
no visitantes en su sitio.
Los casos de excepción pueden ser sitios que no necesitan
ser listados en herramientas de búsqueda: ej: intranets. En estos casos se debe
tener especial cuidado en como se diseñan y configuran los frames para evitar
que el usuario se sienta incómodo y que no llegue a la información que es
importante para él.
Nielsen escribió hace unos años un artículo en el cual
muchos conceptos siguen aún vigentes:
http://www.useit.com/alertbox/9612.html
Referencias:
http://lois.co.uk/web/articles/frames.shtml
http://webmaster.harvard.edu/bestpractice/frames.html
http://www.designplace.org/tutorials.php?page=1&c_id=1