Estoy planeando obtener varios archivos JS de mi servidor de forma asíncrona mientras se carga la página. Soy consciente de la función de Jquery "getScript", pero esto solo tiene 1 script. ¿Hay alguna forma de especificar una devolución de llamada que se ejecutará cuando se haya obtenido un lote de scripts del servidor?Forma correcta de obtener varios guiones de forma asincrónica utilizando Jquery con devolución de llamada lista para documentos
pensé en hacer algo como esto:
$.getScript(script1, function() {
$.getScript(script2, function() {
$.getScript(script3, function() {
...
...
});});....});
Pero esto carga las secuencias de comandos en secuencia, y me gustaría las solicitudes que se realizan en paralelo.
Como una pregunta más general que sustituye a esta, ¿cuál es la mejor manera de cargar N recursos (CSS, imágenes, scripts, etc.) especificando asincrónicamente una única devolución de llamada que se ejecutará cuando se hayan cargado todos los recursos?
Actualización: Además de esto, necesito que la devolución de llamada se ejecute después de que el documento esté listo (señalado por el evento $ (documento) .ready). ¿Alguna forma de lograr esto?
Esto se puede simplificar eliminando el contador, usando 'names.pop' (o' names.shift') y comprobando si la longitud de la matriz es 0, en lugar de seguir el contador. –
@Ryan: Eso será un poco más simple, pero (minuciosamente) más lento. Además, significa que la persona que llama no puede reutilizar la matriz. (Lo cual es poco probable de todos modos) – SLaks
Esto se ve muy bien, buen uso de cierres :) Estoy frente a un problema relacionado de alguna manera. Tendría que ser capaz de determinar cuál de la devolución de llamada y $ (documento) .ready se ejecutan primero. Lo que pasa es que necesito ejecutar código solo cuando todos los scripts se hayan cargado (y ejecutado) y el DOM haya sido completamente analizado. Actualizaré la pregunta para reflejar esto. – Diego