Hola
stock,
El framework Dojo es bastante extenso, tanto en librerias de funcionalidad como en widgets. En el sitio web de Dojo
http://dojotoolkit.org/, puedes descargarte varias compilaciones distintas. Ellos entienden por compilación un único fichero dojo.js en el que agrupan un conjunto determinado de funcionalidades. Por ejemplo te puedes descargar una compilación con el núcleo (funcionalidades básicas) y todos los widgets. Lo bueno que tiene Dojo es que cualquier compilación que te descargues siempre viene acompañada de todo el código fuente. Si en un momento dado del desarrollo de tu aplicación necesitas cargar un paquete que no está en la compilación que has decidido usar, dojo identifica que fichero del código fuente tiene ese paquete y lo carga dinámicamente en el cliente mediante AJAX de forma transparente al usuario y al programador que únicamente tiene que importarlo. Es una filosofía similar a los paquetes Java.
Esta carga dinámica de los paquetes mediante AJAX es evidentemente mucho más lento que si tuvieras el paquete directamente en el fichero principal dojo.js y normalmente las compilaciones que te puedes descargar no cubren todas tus necesidades. Seguramente te surgirá utilizar paquetes que no estén en tu fichero principal y esto se traduce en muchas peticiones AJAX para cargar ficheros y por tanto en lentitud de carga de la página.
Para evitar esto puedes bajarte todo el código fuente de Dojo y contruirte tu propia compilación usando ant (tienes toda la información de como hacerlo en la web de Dojo). Es decir, puedes usar cualquier compilación en desarrollo y una vez que has identificado que paquetes has utilizado, puedes contruir un único fichero dojo.js con todos esos paquetes evitando así las peticiones AJAX para cargarlos dinámicamente y la lentitud de carga