html - insertar - ¿Por qué los desarrolladores odian iframes?
iframe src javascript (16)
Como dijo Nosredna, es probable que se deba a que la gente los confunde con fotogramas, y en realidad hay muchos argumentos válidos contra los fotogramas. Algunos de ellos no son aplicables a iframes, pero nuevamente algunos de ellos sí lo son.
El problema más llamativo es, probablemente, el de la vinculación profunda: es cierto que los iframes sufren esto en menor medida que los marcos, pero si permite que los usuarios naveguen entre las diferentes páginas en el iframe, será un problema. También hay un par de problemas de usabilidad de los que tendrás que cuidarte. El problema más común es el de las barras de desplazamiento dobles, que personalmente considero increíblemente molesto.
Tiendo a evitar iframes, sobre todo porque creo que es una solución poco elegante. Descubrí que cuando me siento y pienso en ello, casi siempre hay una mejor solución. A pesar de eso, también creo que hay un lugar para ellos. Es el giro del mundo de la web: solo porque tiene un historial de uso indebido, se ha convertido en consenso que nunca debería usarse. Ese no es el caso aquí, pero creo que deberías pensarlo dos veces antes de usar iframes.
Posible duplicado:
¿Los marcos flotantes se consideran ''mala práctica''?
Mientras trabajo con desarrolladores web, siempre escucho de ellos que usar iframes es algo que debemos evitar todo lo que podamos, y algunos dicen que es algo malo, molesto y que causa muchos problemas.
Además, cuando le dije a mi jefe anterior "no desarrollador" que usaré iframe, me miró como un mal desarrollador :)
Lo que quiero saber es si los iframes tienen una historia muy mala con el desarrollo web.
¿Es un desastre?
En algunos casos, veo que es obligatorio usar iframes, ¿eso significa que soy un mal desarrollador?
¿O todo eso debido a que es difícil de tratar debido a algunos problemas de seguridad que debemos tener en cuenta durante el desarrollo?
Por favor, enumere sus puntos si también lo odia o corrígeme si estoy pensando de la manera incorrecta.
Creo que IFrames tiene su lugar. No los usaría en sitios web frontales / públicos debido a problemas con SEO, etc. Para una aplicación web interna / de fondo creo que son útiles cuando necesitas aislar el estilo de una sección en particular del resto de la página, por ejemplo, un visor de informes o un editor de HTML, donde los estilos heredados de la página principal podrían causar un problema si todo el contenido estuviera en un documento. Mi 2c ...
Creo que las personas confunden iframes con marcos HTML, y los marcos son despreciados universalmente.
La gente usa iframes todo el tiempo sin siquiera darse cuenta. Si no recuerdo mal, TinyMCE usa iFrames.
Es una mala práctica, y una forma perezosa de escribir un buen código (léase: hace lo que el cliente quería). Una búsqueda de "iframe bad" en Google (sin comillas) abre muchas discusiones en el foro sobre el tema. Si realmente necesita traer contenido externo, use AJAX. Mejor aún, no lo hagas en absoluto.
Hay una situación en la que los iframes son (casi) necesarios: cuando el contenido del iframe se encuentra en un dominio diferente, y debe realizar la autenticación o verificar las cookies que están vinculadas a ese dominio. En realidad, evita los problemas de seguridad en lugar de crearlos.
Por ejemplo, si está escribiendo un tipo de complemento que puede usarse en cualquier sitio web, pero el complemento debe autenticarse en otro dominio, puede crear un iframe continuo que se ejecute y se autentique en el dominio externo.
Los elementos HTML no deberían tener comportamiento.
No debe usar iframes para el diseño. CSS hace un trabajo mucho mejor para la misma cosa y permite mucha más libertad también.
No hay nada de malo en Iframes para construir aplicaciones web. Permiten una combinación de contenido específico con encapsulación de memoria. ¿Cuántas veces construyó alguien un pequeño y hábil javascript ajax que sopló totalmente cuando olvidó y subió la última Jlibrary a su página principal o algún contenido cargado de DIV? La mayoría de los otros problemas rodean el SEO, que solo importa si realmente quisiste robarle el contenido a alguien más, lo cual es bastante tonto de todos modos. Los marcos flotantes le proporcionan memoria encapsulada y la capacidad de compartir páginas bien diseñadas en varios sitios. A pesar de lo que muchos quieren hacer creer, Iframes y / o sus equivalentes estarán disponibles por mucho tiempo.
Porque puede ser difícil trabajar con ellos cuando se trata de seguridad. Un navegador moderno y de buen comportamiento no le permite escribir código en un iFrame que manipule elementos en otros iFrames en la página. Esto puede hacer que ciertas técnicas sean difíciles de lograr algunas veces.
Quería agregar que la mayoría de las veces , los iframes tampoco ayudan con el SEO de una página. Googlebot no coloca el contenido de un iframe en la página.
Supongo que porque va en contra de todo el fundamentalismo html-describe-contents + css-does-the-visual-design. Además, el uso excesivo de iframe es un desperdicio de rendimiento ya que hace llamadas separadas para recuperar el marco. Si lo piensas, AJAX básicamente es como iframe, excepto que está de moda hoy (puede que no sea en el futuro).
En cuanto a la seguridad, es un poco problemático porque el usuario podría cargar basura total de otro dominio sin siquiera saberlo.
Un problema es que tienen su propio ciclo de vida de página, por lo que la interactividad entre el host y el iframe child es limitada (cadena de consulta, variables de sesión o JS). Una alternativa sería considerar el uso de un div desplazable.
Otro problema es la impresión. El resultado de un iframe (o un div desplazable para ese asunto) puede ser impredecible y varía enormemente entre diferentes navegadores.
Una de las razones es la seguridad: los ataques con inyección iframe eran bastante comunes. Consulte esta página de Ars Technica para obtener una descripción:
http://arstechnica.com/security/news/2008/03/ongoing-iframe-attack-proving-difficult-to-kill.ars
y otra página que resume algunas vulnerabilidades (no sé cuántas de ellas son válidas para la cosecha actual de navegadores, pero el artículo no es tan antiguo):
http://www.thespanner.co.uk/2007/10/24/iframes-security-summary/
Por otro lado, permiten la comunicación entre dominios, y se usan con bastante frecuencia por las aplicaciones de Internet "ajaxy":
http://softwareas.com/cross-domain-communication-with-iframes
Una razón por la que son rechazados es porque son intrínsecamente lentos. Para cuando el iframe comience a cargarse, su página de host ya se encuentra en una etapa avanzada de la canalización de carga. Iframes y navegación rápida son casi imposibles de combinar.
iframes de hoy tienen un mal nombre debido al soporte iframe en navegadores anteriores. Similar a VB.NET teniendo un mal rap debido a la historia de VB6. Los uso en estos días donde sea necesario ... solo tenga en cuenta que es posible que no funcione como lo había planeado de vez en cuando y para dar cuenta de eso.
Los marcos flotantes pueden tener problemas similares a los marcos y el uso desconsiderado de XMLHttpRequest
: rompen el paradigma de un documento por URL, que es esencial para el correcto funcionamiento de la web (piense en marcadores, enlaces profundos, motores de búsqueda, ...) .
Si está creando una aplicación web, use la técnica que desee (incluidos marcos, flash, miniaplicaciones, $). Si está creando una página web real e informativa, adhiérase a HTML sin marco, CSS y libre de obstrucciones JavaScripts y tenga en cuenta que la página todavía se puede utilizar con scripts desactivados.