¿Fue útil?

Solución

La mejor manera de incluir JavaScript en su sitio web es incluir la menor cantidad posible de archivos al final de la página *, después de que se hayan cargado todo el marcado y otros activos. Hacerlo de esa manera también tiene el beneficio adicional de fomentar una & Quot; mejora progresiva < !> quot; modelo de desarrollo.

* Yahoo gasta activamente una gran cantidad de dinero investigando esto y tiene personas dedicadas y de tiempo completo (incluido el brillante Steve Souders) que publican sus hallazgos en línea y en formulario de libro .

Otros consejos

No parece una situación única para todos, por lo que a menudo recurro a este famoso artículo para ayudarme a responder preguntas como esa:

http://developer.yahoo.com/performance/rules.html

Se mencionó en uno de los podcasts, pero si aloja el javascript en un dominio separado, o incluso en un subdominio, el navegador puede abrir más conexiones y descargar tanto el js como el resto de la página en Mismo tiempo. Es por eso que muchas personas optan por vincular a la instancia de jQuery de Google, en lugar de la suya. Este ejemplo también tiene beneficios de cachine, pero el principio básico se mantiene.

En pocas palabras, el artículo dice que adjunte <script> nodos dinámicamente en DOM para lograr descargas paralelas de archivos de script. Esto funciona y no es nada nuevo.

Sin embargo, no menciona el mayor inconveniente del método: aunque los scripts se descargarán en paralelo, el orden en que se ejecutan no es determinista. IE los ejecutará en el orden en que terminan de descargarse, mientras que Firefox los ejecuta en el orden en que están adjuntos en el DOM.

Esto es un problema. Por ejemplo, digamos que el guión A y el guión B se agregan usando esa técnica. Ahora imagine que el script A es jQuery, y el script B hace esto:

$(document).ready(function(){...})

En IE está jodido si por alguna razón (por ejemplo, tráfico de red, falta de caché) el script B termina de descargarse antes del script A, porque se ejecutará antes de que se haya cargado jQuery.

Ver este artículo para una mejor explicación.

La respuesta de Rex M es la camino a seguir.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top