Por que os quadros foram descontinuados no HTML5, mas não os iFrames? Afinal, quase não há diferença entre os dois. Em muitos casos, usar um deles daria a mesma saída (me perdoe se eu estiver errado)?
Por que os quadros foram descontinuados no HTML5, mas não os iFrames? Afinal, quase não há diferença entre os dois. Em muitos casos, usar um deles daria a mesma saída (me perdoe se eu estiver errado)?
Respostas:
Há alguns conceitos errados em sua postagem. Primeiro, os elementos frame
e frameset
não são preteridos no HTML5, eles são obsoletos (ou seja, foram removidos completamente).
Segundo, os elementos frame
e frameset
não são a mesma coisa que o iframe
elemento, nem fornecem a mesma saída:
O frameset
elemento substitui o elemento body nas páginas como um meio de incluir um modelo de documento diferente para as páginas da Web: elas são ruins para usabilidade e acessibilidade e o que pretendiam realizar foi completamente substituído pelo CSS e pelo onipresente desenvolvimento do lado do servidor.
O iframe
elemento, por outro lado, não substitui o corpo de uma página. Ele atua como um meio de incluir um novo contexto de navegação incorporado em um bloco de conteúdo. Ele não sofre dos mesmos problemas de usabilidade ou acessibilidade que o modelo de conjunto de quadros e é usado em quase qualquer lugar que seja necessário incluir um contexto de navegação incorporado (os widgets são o exemplo mais prolífico). 1
O iframe
HTML5 também possui recursos adicionais, pois pode ser protegido por uma caixa de areia , permitindo que o documento pai decida o que é executado dentro dele. Isso permite alguma medida de segurança para o documento pai (e visitantes do documento pai) ao incorporar conteúdo não confiável.
Nota 1: o object
elemento se sobrepõe um pouco ao iframe
elemento, mas possui um modelo de conteúdo diferente (destinado principalmente a plug-ins), tem seu próprio conjunto de advertências e não possui os atributos de sandbox do iframe
elemento.
Quadros (conjunto de quadros) atua como documento. Ele foi removido porque quebra a estrutura e a navegação dos documentos HTML. Por exemplo. você tem links em um quadro, conteúdo no outro, não é possível abrir o link da página em uma nova janela, não é possível vincular a uma subpágina específica etc.
Por outro lado, os iframes não quebram nada se usados corretamente, porque são destinados ao conteúdo da caixa de areia (por exemplo, anúncios).
Os conjuntos de quadros geralmente são usados de uma maneira que violam o princípio fundamental da Web - que cada documento tenha um único URL. Isso leva a problemas com links, favoritos, mecanismos de pesquisa etc.
O uso típico de um conjunto de quadros seria um quadro na parte superior com um logotipo ou cabeçalho, um quadro ao lado com um menu e um quadro de conteúdo. Mas os mecanismos de pesquisa indexam páginas individuais; portanto, quando você encontra alguma página no Google, ela é vinculada diretamente à página de conteúdo sem o conjunto de quadros, para que você perca a navegação. O problema com links e marcadores é que você normalmente deseja vincular ou marcar uma página de conteúdo específica dentro do conjunto de quadros, sem perder o próprio conjunto de quadros. Não é uma maneira fácil de fazer isso.
A razão pela qual os conjuntos de quadros se tornaram populares em primeiro lugar foi porque eles permitiram um cabeçalho e menu posicionados estaticamente com uma área de conteúdo de rolagem. Mas isso pode ser conseguido muito mais facilmente com o CSS hoje. Além disso, os quadros permitiam o uso de elementos comuns, como logotipos e menus, em várias páginas, sem o uso de nenhuma codificação no servidor. Essa era uma vantagem em um momento em que a codificação do servidor era entediante e propensa a erros (por exemplo, scripts CGI), e muitos hosts não permitiam nenhum script do lado do servidor. Hoje, com sistemas de gerenciamento de conteúdo (CMS) e melhores plataformas do lado do servidor, isso é muito melhor tratado no lado do servidor.
Então, basicamente, não há vantagens em usar um conjunto de quadros, apenas muitos problemas.
Os IFrames podem ser usados da mesma maneira que os conjuntos de quadros e, nesse caso, também levam aos mesmos problemas. Mas também existem muitos usos legítimos de iframes que não levam aos mesmos problemas.