it-swarm-es.com

¿Por qué no hay una etiqueta de inclusión HTML del lado del cliente?

Un otro programador me hizo una pregunta el otro día. Recuerdo (hace mucho tiempo) que me preguntaba lo mismo. ¿Por qué nunca se consideró una etiqueta de inclusión del lado del navegador? ¿O no?

Específicamente con una etiqueta que le indica al navegador que incluya HTML adicional de otras fuentes. p.ej. <include src="http://server/foo/bar.html">. Muchas personas harán llamadas de JavaScript y completarán innerHTML para lograr lo mismo, cuando el navegador pueda lograr lo mismo fuera del motor de JavaScript.

Hubiera sido doloroso haber anidado <HTML>s <BODY>s (es decir), pero tenemos que considerar ese aspecto en cualquier lugar de todos modos.

18
Jé Queue

¿Soy la última persona en la tierra que recuerda el ( Netscape 4-only ) layer y ilayer etiquetas?

Netscape 4 también permitido la etiqueta div para tener un atributo src, que logró lo mismo.

Netscape los envió al W3C, que decidió no incluirlos; use iframe en su lugar.

12
Dori

¿Por qué nunca se consideró una etiqueta de inclusión del lado del navegador? ¿O era?

Ciertamente, fue solicitado por cada autor web novato que aún no había trabajado con Server Side incluye, en los primeros días en la lista www-html. Pero en esos días, W3 estaba feliz de ignorar por completo la presión de los autores web.

Si se permitiera la inclusión entre sitios, sería un desastre de seguridad. Puede acceder a una página del banco del usuario y leer el contenido del mismo. (Originalmente, las secuencias de comandos DOM eran limitadas, pero aún podría haber leído de document.links, document.images, funciones de secuencias de comandos eliminadas por la página de destino, etc. Desde entonces, puede hacer lo que quiera con el contenido importado).

Si no se permitiera la inclusión entre sitios ... bueno, entonces la característica no tendría ninguna ventaja sobre las del lado del servidor. Sería un trabajo más lento para el cliente hacer que el servidor podría haber manejado mejor. Diferente a <iframe>, una inclusión debería bloquear la carga de la página. Los SSI serían en todos los sentidos superiores.

14
bobince

Lo hicieron. Se convirtió en el <frameset> etiqueta. No mucho después, agregaron el <iframe> etiqueta.

La mayoría de los primeros servidores web admitían las inclusiones del lado del servidor, por lo que se pensó que una inclusión textual del lado del cliente era innecesaria, dado que la misma funcionalidad estaba disponible también con los marcos.

10
greyfade

El objeto aún se representa en un marco y no tiene acceso DOM a los "datos". Lo que los desarrolladores deberían haber recibido hace años es una forma de incluir fragmentos con una etiqueta simple. Incluso si esta etiqueta tuviera restricciones de espacio aislado de dominio, sería bastante útil compartimentar características, mejorar el mantenimiento y aprovechar el almacenamiento en caché del navegador.

Sé que hay muchos buenos complementos de jquery que hacen esto y muchos scripts del lado del servidor, pero no hay una buena razón para no admitir dicha etiqueta. OMI es una buena pregunta "¿Por qué no hay etiqueta de inclusión del lado del cliente?"

Si te gusta jquery, aquí hay un buen script para incluir en el lado del cliente: inc: un lado del cliente súper pequeño incluye el complemento jQuery de JavaScript

3
Shanimal

Las variantes en una etiqueta <include> Fueron consideradas en la historia temprana de HTML , pero nunca llegaron muy lejos.

2
TRiG

Has probado

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

Creo que eso se implementa en la mayoría de los navegadores.

2
Peter Turner