ti-enxame.com

Por que nenhum HTML do lado do cliente inclui tag?

Outro dia, fiz uma pergunta para mim por outro programador. Lembro-me (há muito tempo) perguntando o mesmo. Por que uma tag de inclusão do navegador nunca foi considerada? Ou foi?

Especificamente com uma tag que instruiu o navegador a incluir HTML adicional de outras fontes. por exemplo. <include src="http://server/foo/bar.html">. Muitas pessoas fazem chamadas javascript e preenchem innerHTML para realizar o mesmo, quando o mesmo fora do mecanismo javascript puder ser realizado pelo navegador.

Teria sido doloroso aninhar <HTML>s <BODY>s (ou seja), mas precisamos considerar esse aspecto em qualquer lugar.

18
Jé Queue

Eu sou a última pessoa na terra que se lembra do ( somente Netscape 4 ) layer e ilayer Tag?

O Netscape 4 também é permitido a tag div para ter um atributo src, que realizou a mesma coisa.

A Netscape os enviou ao W3C, que optou por não incluí-los - use iframe.

12
Dori

Por que uma tag de inclusão do navegador nunca foi considerada? Ou foi?

Certamente foi solicitado por todos os autores novatos na web que ainda não haviam elaborado as inclusões no servidor, nos primeiros dias da lista www-html. Mas naquela época o W3 estava feliz em ignorar completamente a pressão dos autores da web.

Se a inclusão entre sites fosse permitida, seria um desastre de segurança. Você pode puxar uma página do banco do usuário e ler o conteúdo dela. (Originalmente, o script do DOM era limitado, mas você ainda podia ler de document.links, document.images, funções de script descartadas pela página de destino, etc. Desde então, você pode fazer o que quiser com o conteúdo importado.)

Se a inclusão entre sites não fosse permitida ... bem, o recurso não teria nenhuma vantagem sobre as inclusões do servidor. Seria um trabalho mais lento para o cliente fazer com que o servidor pudesse lidar melhor. Ao contrário de <iframe>, uma inclusão teria que bloquear o carregamento da página. Os SSIs seriam, em todos os aspectos, superiores.

14
bobince

Eles fizeram. Tornou-se o <frameset> tag. Pouco tempo depois, eles adicionaram o <iframe> tag.

Como a maioria dos servidores Web antigos suporta inclusões no lado do servidor, uma inclusão textual no lado do cliente provavelmente não é necessária, uma vez que a mesma funcionalidade também estava disponível com quadros.

10
greyfade

O objeto ainda é renderizado em um quadro e você não tem acesso DOM a "dados". O que os desenvolvedores deveriam receber anos atrás é uma maneira de incluir trechos com uma tag simples. Mesmo que essa tag tenha restrições de sandbox de domínio, seria bastante útil compartimentar os recursos, melhorar a manutenção e aproveitar o cache do navegador.

Eu sei que existem muitos plugins jquery bons que fazem isso e muitos scripts do lado do servidor, mas não há uma boa razão para não suportar essa tag. A IMO é uma boa pergunta "Por que nenhum cliente inclui tag?"

Se você gosta de jquery, aqui está um bom script de inclusão do lado do cliente: incluindo: Um minúsculo lado do cliente inclui o plugin jQuery JavaScript

3
Shanimal

Variantes em um <include> tag foram realmente consideradas em o histórico inicial do HTML , mas nunca chegaram muito longe.

2
TRiG

Você tentou

<object  type="text/html" data="page.html" height="500" width="500">
What I see if that didn't work 
</object>

Eu acho que isso é implementado na maioria dos navegadores.

2
Peter Turner