script glosario ejemplos chrome basico html http background-image image noscript

html - glosario - ¿Una imagen dentro de una etiqueta de noscript solo se descarga si Javascript está deshabilitado?



noscript html (2)

Considere el siguiente ejemplo:

<noscript> <img class="photo" src="example.png"> </noscript>

¿El cliente solo descarga el archivo de imagen si tiene Javascript deshabilitado? (Estoy consciente de que el cliente solo puede ver la imagen si Javascript está deshabilitado en este ejemplo)

La razón por la que pregunto es porque he estado usando los URI de datos base64 para varias propiedades de imagen de fondo en un CSS externo (evitando las solicitudes de http). También me gustaría usar los URI de datos base64 para el valor src de algunas etiquetas img actualizando sus valores a través de Javascript externo (para conservar los beneficios del almacenamiento en caché).

Esencialmente, el objetivo de esto es evitar / limitar las solicitudes de http, así que me preguntaba si puedo degradar con gracia y solo recuperar los archivos de imagen si Javascript está deshabilitado. ¿O se descarga la imagen independientemente?


La especificación HTML 4.01 dice que el contenido de noscript no se representa en ciertas situaciones. Sin embargo, esto sugiere que los navegadores no deben realizar ninguna operación GET sobre la base de su contenido en tales situaciones, ya que tales operaciones no tendrían sentido y reducirían la eficiencia.

El borrador de HTML5 es más explícito y probablemente refleja el comportamiento real del navegador. Dice sobre el elemento noscript , en una nota enfática: "funciona esencialmente al" apagar "el analizador cuando los scripts están habilitados, de modo que los contenidos del elemento se tratan como texto puro y no como elementos reales". (La nota se relaciona con el motivo por el cual noscript no funciona cuando se usa la sintaxis XHTML, pero también revela el principio por el cual funciona, cuando funciona).

Por lo tanto, podemos esperar que cuando se habilitan los scripts, el contenido de noscript ni siquiera se analizará (excepto para reconocer la etiqueta final). La respuesta de Blender parece confirmar esto, y también mi pequeño experimento con Firefox:

<img src=foo style="foo: 1"> <noscript> <img src=bar style="bla: 1"> </noscript>

Firefox realiza una solicitud GET fallida para foo pero no una solicitud de bar , cuando el script está habilitado. Además, muestra una advertencia sobre el código CSS erróneo foo: 1 , en la consola de errores, pero ninguna advertencia sobre bla: 1 . Así que aparentemente la etiqueta img ni siquiera fue analizada.

Sin embargo, no veo cómo la pregunta se relaciona con el escenario presentado como una razón para formularla. Creo que utiliza un elemento img fuera de noscript y lo coloca allí, utilizando data: URL, el contenido inicial deseado (que seguirá siendo, como alternativa, el contenido final cuando se deshabilite la creación de scripts).


Respuesta corta:
NO, las imágenes NO se descargan dentro de un elemento <noscript>

Respuesta técnica:

Acababa de hacer algunas pruebas en mi sitio web personal para la funcionalidad con JavaScript desactivado, y encontré este artículo ... con JavaScript aún desactivado, por cierto.

Bueno, en la parte superior de esta página web, tiene un mensaje de advertencia que dice:

"Desbordamiento de pila funciona mejor con JavaScript habilitado"

Siendo el tipo de geek web que tiende a "ver el código fuente" en prácticamente todos los sitios web que veo (!), El código HTML para el mensaje es el siguiente:

<noscript> <div id="noscript-warning"> works best with JavaScript enabled<img src="http://example.com/path/to/1x1-pixel.gif" alt="" class="dno"></div> </noscript>

Nada demasiado innovador allí. Sin embargo, lo que me interesó fue el elemento IMG , que hacía referencia a una imagen invisible de 1px por 1px.

Supongo que esta imagen debe ser utilizada por el software de análisis / estadísticas para detectar cuántos de sus usuarios están navegando sin JavaScript. Si esta suposición es correcta (y no hay ninguna otra razón para usar una imagen de 1x1 píxeles en blanco aquí que haya pasado por alto aquí), por lo tanto, esto confirmaría básicamente lo siguiente: los navegadores no descargan el contenido de nada dentro de un elemento NOSCRIPT , excepto en la situación que JavaScript está realmente deshabilitado . (Y ciertamente no parece haber ninguna técnica de diseño de estilo retro ''98 en marcha, me complace decirlo!) ;-)

(PD: ¡Espero no ofender a nadie en la red de Stack Exchange por señalar esto!)