Contexto: mi pregunta se refiere a mejorar el rendimiento de carga de la página web y, en particular, el efecto que javascript tiene sobre la carga de página (recursos/elementos debajo del script están bloqueados de descarga/renderización).Descarga de javascript sin bloqueo
Este problema generalmente se evita/mitiga colocando los scripts en la parte inferior (por ejemplo, justo antes de la etiqueta).
El código que estoy buscando es para análisis web. Colocarlo en la parte inferior reduce su precisión; y porque esta secuencia de comandos no tiene efecto en el contenido de la página, es decir, no está reescribiendo ninguna parte de la página, quiero moverlo dentro de la cabeza. Solo cómo hacerlo sin arruinar el rendimiento de carga de páginas es el quid de la cuestión.
De mi investigación, he encontrado seis técnicas (w/apoyo entre todos o la mayoría de los principales navegadores) para la descarga de secuencias de comandos para que no bloquee el contenido de la página hacia abajo desde la carga/representación:
(i) XHR + eval();
(ii) XHR + inject;
(iii) descargue el script envuelto en HTML como en iFrame;
(iv) el establecimiento de bandera asíncrono de la etiqueta de script a TRUE (HTML 5 solamente);
(v) el establecimiento deDefer atributo de la etiqueta script; y
(vi) 'Script DOM Element'.
Es el último de estos que no entiendo. El Javascript para implementar el patrón (VI) es:
(function() {
var q1 = document.createElement('script');
q1.src = 'http://www.my_site.com/q1.js'
document.documentElement.firstChild.appendChild(q1)
})();
parece bastante simple: y función anónima se crea entonces ejecutados en el mismo bloque. Dentro de esta función anónima:
se crea un elemento de script
su src elemento se ajusta a su ubicación, a continuación,
se añade el elemento de secuencia de comandos para el DOM
Pero mientras que cada línea es clara, todavía no está claro para mí cómo exac ¿Este patrón permite la carga de scripts sin bloquear los elementos/recursos de la página de procesamiento/carga?
+1: No tengo la respuesta, pero gracias por este flujo de conocimiento. ¿Coloca el script simple (el que está mostrando el código) en la sección HEAD, o al principio de la sección BODY justo después de la etiqueta OPEN
? –lo que me gustaría hacer * es colocar esta secuencia de comandos en la parte inferior de la cabeza, justo antes de '. Debido a que la secuencia de comandos es un rastreador de vista de página, este posicionamiento (frente a la parte inferior del cuerpo) dará recuentos más precisos. Por supuesto, esto tiene implicaciones de rendimiento, por lo tanto mi ubicación Q. W/r/t justo antes de ' o justo después de
supongo que es la misma en cuanto a rendimiento, aunque para fines de CMS, parece ser un poco más limpio insertar/actualizar secuencias de comandos en la cabeza, y eso incluso podría ser específico del CMS. – doug