Es todo que ver con la entrada en Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=364315
En esa entrada, Anders Holbøll sugirió:
Parece que cuando se enfrentan a una etiqueta de secuencia de comandos, que hace referencia a un archivo externo, el navegador no intenta cargar ningún elemento después de la secuencia de comandos hasta se cargan los archivos de script externos. Esto hace que los sitios, que hacen referencia a varios o grandes archivos javascript, se ralenticen.
...
Aquí file1.js se cargará primero, seguido secuencialmente por file2.js. Luego img1.gif, img2.gif y file3.js se cargarán al mismo tiempo. Cuando file3.js tiene cargado por completo, se cargará img3.gif.
se podría argumentar que, dado que el JS-archivos podrían contener, por ejemplo una línea como "document.write('<!--');
", no hay forma de saber si cualquiera de los contenidos siguiendo una etiqueta script vez habrá espectáculo, antes del script ha sido ejecutado.
Pero supongo que es mucho más probable que el contenido se muestre que no. Y en estos días es bastante común que las páginas hagan referencia a muchos archivos externos de JavaScript (ajax-libraries, statistics y advertising), que con el comportamiento actual ocasiona que la carga de la página se serialice.
En esencia, el analizador html continúa leyendo el archivo html y cargando los enlaces de referencia, incluso si está bloqueado debido a un script.
Se llama "especulativo" porque la secuencia de comandos puede hacer cosas como establecer parámetros css como "display: none
" o comentar secciones del siguiente html, y al hacerlo, hacer innecesarias cargas certificadas ... Sin embargo, en el 95% caso de uso, la mayoría de las referencias se cargarán, por lo que el analizador generalmente adivina correctamente.
Hmm, me pregunto por qué esta pregunta recibió tanta atención de repente ... – Stobor
http://samsaffron.com/archive/2012/02/17/stop-paying-your-jquery-tax recibió atención a través de HackerNews y contiene un enlace a esta pregunta. Al menos, así es como llegué aquí. – vinod
Llegué aquí porque Stack Overflow es mi periódico. –