Estoy buscando una manera limpia de cargar asincrónicamente los siguientes tipos de archivos javascript: un archivo js "core" (hmm, vamos a llamarlo, oh no lo sé , "jquery!" jaja), x cantidad de archivos js que dependen del archivo "core" js que se está cargando, y número y de otros archivos js no relacionados. Tengo algunas ideas de cómo hacerlo, pero no estoy seguro de cuál es la mejor manera. Me gustaría evitar cargar guiones en el cuerpo del documento.cargando archivos js y otros archivos dependientes js de forma asíncrona
Así, por ejemplo, quiero los siguientes 4 archivos javascript para cargar de forma asíncrona, apropiado nombre:
/js/my-contact-page-js-functions.js // unrelated/independent script
/js/jquery-1.3.2.min.js // the "core" script
/js/jquery.color.min.js // dependent on jquery being loaded
http://thirdparty.com/js/third-party-tracking-script.js // another unrelated/independent script
Pero esto no va a funcionar porque no está garantizado que jQuery se carga antes de que el plug-in de color ...
(function() {
var a=[
'/js/my-contact-page-functions.js',
'/js/jquery-1.4.2.min.js', '/js/jquery.color.js',
'http://cdn.thirdparty.com/third-party-tracking-script.js',
],
d=document,
h=d.getElementsByTagName('head')[0],
s,
i,
l=a.length;
for(i=0;i<l;i++){
s=d.createElement('script');
s.type='text/javascript';
s.async=true;
s.src=a[i];
h.appendChild(s);
}
})();
¿No es posible cargar jquery y el complemento de color de forma asíncrona? (Dado que el complemento de color requiere que jQuery se cargue primero.)
El primer método que estaba considerando es simplemente combinar el script del plugin de color con la fuente jQuery en un archivo.
Entonces otra idea que tenía era al cargar el complemento del color de este modo:
$(window).ready(function() {
$.getScript("/js/jquery.color.js");
});
Alguien tiene alguna idea sobre cómo te gustaría ir sobre esto? ¡Gracias!
Parece que LAB ya no se mantiene, por lo que cambié la respuesta aceptada a la suya, ya que mencionó RequireJS. (¡Probablemente una mejor opción hoy en día!) Afortunadamente, esta es la opción "correcta" para hacer las preguntas más antiguas aquí en SO. – taber