tutorial examples dojo libraries

examples - dojo toolkit pdf



Dojo vs Dijit: archivos para incluir o referenciar? (3)

Para abordar su primera pregunta, utilice la versión de origen completa localmente para el desarrollo, de modo que pueda obtener información de depuración más clara que apunte a una línea legible en el origen, en lugar de a la única línea a la que se reduce la versión minimizada. Use el CDN para producción.

He estado leyendo el libro de O''Reilly "Dojo - The Definitive Guid", pero algunas cosas aún no son definitivas para mí.

Hablan de "bootstrapping" y obtener dojo.css de AOL CDN ".

Cuando estoy probando en mi máquina, ¿debería usar CDN? ¿O debería esperar y usar eso solo cuando despliegue?

En segundo lugar, el libro habla sobre CDN para dojo, pero no para dijit.

Estoy desarrollando en Google App Engine (GAE), por lo que tener más de 2000 archivos Dojo / Dijit en mi directorio de Javascript es un poco molesto, porque ralentiza mi carga a GAE cada vez.

Firebug me está dando este error: OBTENER http: // localhost: 8080 / dijit / nls / dijit-all_en-us.js 404 no encontrado GET http: // localhost: 8080 / dijit / _editor / plugins / FontChoice.js 404 no Encontró

Descargué la muestra de aquí: http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/themeTester.html?theme=soria y me gustaría "simplemente" hacer que se ejecute en mi máquina en el local motor de la aplicación google (que es el localhost: 8080 que ves en las URL anteriores).

Veo esta afirmación que probablemente está causando el segundo 404 anterior: dojo.require ("dijit._editor.plugins.FontChoice");

Otro error: no se puede acceder a la precarga optimizada de cierre ("en-us") dijit-all.js (línea 479) anonymous ("dijit.nls.dijit-all", ["ROOT", "ar", "ca", 40 más ... 0 = ROOT 1 = ar 2 = ca 3 = cs 4 = da 5 = de 6 = de-de 7 = el 8 = en 9 = en-gb]) dijit-all.js (línea 489) dijit-all.js () dojo.i18n._searchLocalePath (locale, true, function (loc) {/ n

Para continuar por ahora, intentaré copiar toda la biblioteca de dijit, pero ¿hay alguna solución para eso?

Mi script actual incluye un aspecto como este:

<script type="text/javascript" src="/javascript/dijit.js"></script> <script type="text/javascript" src="/javascript/dijit-all.js" charset="utf-8"></script>

Obtuve el archivo dijit.js copiando y cambiando el nombre de dijit.js.uncompressed.js a dijit.js.


Tienes algunas opciones en realidad:

  1. Puede usar el CDN para todo (aunque el uso de la fuente completa localmente le brinda mejores mensajes de error). Google también los tiene . Dijit está aquí: http://ajax.googleapis.com/ajax/libs/dojo/1.3.2/dijit/dijit.js FYI. Esto tiene muchas ventajas en mi opinión. El almacenamiento en caché del usuario de JS es el principal.

  2. Construye un archivo en capas. Creo que el libro de O''Reilly tiene una sección al respecto, pero el libro de PragProg es mejor a este respecto IMO. También hay este documento en dojocampus.org sobre la construcción. Esto recortará los archivos que necesita cargar en GAE y acelerará la carga de la aplicación. Esto es realmente lo que hago para reducir las solicitudes HTTP.

  3. Sigue haciendo lo que estás haciendo. :)

En cuanto a los errores que está viendo sobre 404 para en-us, los archivos son esencialmente inofensivos. Aquí hay una mejor descripción .

También podría estar recargando archivos dijit usando dijit.uncompressed.js y dijit-all.js y causando problemas en el proceso ... pero no estoy seguro de este.


Solo quiero aclarar que, al usar CDN, todo lo que necesita incluir es el script principal de Dojo. El resto se activará automáticamente cuando lo dojo.require() .

Si por algún motivo (técnico) no desea utilizar el cargador de dominio X (los CDN usan este tipo de cargador), puede hacer una compilación personalizada (bien descrita en muchos lugares). Después de la construcción, copie solo los archivos relevantes a su servidor. No es necesario copiar todas las más de 2000 pruebas, demostraciones, proyectos DojoX no utilizados, Dijits, etc.

Durante la compilación creará un único archivo modificado (o algunas capas), que incluirá todos los códigos JavaScript de Dojo que utilice. Si utiliza widgets de Dojo, sus plantillas ya estarán en línea, por lo que no incurrirá en hits para ellos. Como parte de la compilación, los archivos CSS se combinan y se minimizan también. Así que, literalmente, en la mayoría de los casos tendrá solo dos archivos: una capa de Dojo, que incluye todo + su código personalizado y un archivo CSS. En casos más complejos, puede tener más archivos, pero generalmente estamos hablando de un puñado.

¿Cómo asegurarse de que todo esté en la construcción? Encienda su analizador de red favorito (Live HTTP Headers, Firebug, Fiddler2 o Charles Proxy le iría bien) y vea si accede a algún archivo fuera de su compilación. Si lo hace, inclúyalos en la compilación o intente averiguar por qué se solicitan y elimine estas solicitudes (algunas llamadas relacionadas con la localización son correctas).

Personalmente, comenzaría con la opción CDN: funciona bien, sin complicaciones, alojado por alguien más con tubos gordos.