Pregunta

He estado leyendo el libro de O'Reilly "Dojo - El Guid definitivo", pero algunas cosas todavía no son definitivos para mí.

Se habla de "arranque" y conseguir el dojo.css del AOL CDN".

Cuando estoy probando en mi máquina, debería utilizar la CDN? O debería esperar y usar que sólo cuando despliego?

En segundo lugar, el libro habla de CDN para ir de discotecas, pero no para dijit.

Estoy desarrollando en Google App Engine (GAE) - así que tener los archivos Dojo 2000 + / Dijit en mi directorio, JavaScript es un poco molesto, ya que ralentiza mi carga a GAE cada vez.

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

He descargado la muestra desde aquí: http://archive.dojotoolkit.org/nightly/ Dojo Toolkit / dijit / themes / themeTester.html? theme = Soria y me gustaría "simplemente" conseguir que se ejecute en mi máquina, debajo de Google App Engine local (que es el localhost: 8080 que se ve en las direcciones URL más arriba).

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

Otro error:   no pueden acceder cierre optimizado precarga ( "en-us") dijit-all.js (línea 479) anónimo ( "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 = es 9 = es]) dijit-all.js (línea 489) dijit-all.js ()  dojo.i18n._searchLocalePath (locale, verdadera, la función (loc) {\ n

Para continuar, por ahora, voy a tratar de copiar toda la biblioteca dijit, pero ¿hay una solución a corto de eso?

Mi script actual incluye el siguiente aspecto:     

<script type="text/javascript" src="/javascript/dijit.js"></script>

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

Tengo el archivo dijit.js copiando y el cambio de nombre a dijit.js.uncompressed.js dijit.js.

¿Fue útil?

Solución

Usted tiene algunas opciones realidad:

  1. Se puede usar la CDN para todo (aunque el uso de la fuente completo de manera local no le dará mejores mensajes de error). Google tiene ellos, así . 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é de usuario de la JS siendo el principal.

  2. Construir un archivo con capas. Creo que el libro de O'Reilly tiene una sección sobre ello, pero el PragProg libro es mejor en este sentido la OMI. Hay también esta doc en dojocampus.org sobre la construcción. Esto recortar los archivos que necesita para subir a GAE y acelerar su carga de aplicaciones. Esto es en realidad lo que hago con el fin de reducir las peticiones HTTP.

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

En cuanto a los errores que está viendo sobre 404 es-archivos son esencialmente inofensiva. href="http://www.dojotoolkit.org/support/faq/why-do-i-always-see-404s-dijit-nls-en-us-loading-js" Aquí está una mejor descripción .

También puede ser Recarga de archivos mediante el uso de dijit dijit.uncompressed.js y dijit-all.js y causando problemas en el proceso ... pero no estoy seguro sobre éste.

Otros consejos

Sólo quiero aclarar que cuando se utiliza CDN todo lo que necesita es incluir el script principal Dojo. El resto será incorporada automáticamente cuando los dojo.require().

Si por algunas razones (técnicas) que no desea utilizar el cargador de X-dominio (CDN utilizan este tipo de cargador), se puede hacer un encargo de la estructura (bien descrito en muchos lugares). Después de la acumulación de copiar sólo los archivos pertinentes a su servidor. No hay necesidad de copiar todos 2000+ pruebas, demostraciones, proyectos Dojox no utilizados, Dijits y así sucesivamente.

Durante la construcción va a crear un único archivo miniaturizada (o unas pocas capas), que incluirá todo el código JavaScript se utiliza Dojo. Si utiliza widgets de Dojo, ya estarán entre líneas sus plantillas, por lo que no incurre en éxitos para ellos. Como parte de la acumulación de archivos CSS se combinan juntos y minified también. Así que, literalmente, en la mayoría de los casos tendrá sólo dos archivos: una capa Dojo, que incluye todo el código personalizado +, y un archivo CSS. En casos más complejos es posible que tenga más archivos, pero por lo general estamos hablando puñado.

¿Cómo asegurarse de que todo está en la acumulación? El fuego de su analizador de red preferida (Encabezados HTTP Live, Firebug, Fiddler2, o Charles Proxy estaría bien) y ver si se golpea los archivos fuera de su acumulación. Si -. Incluirlos en la construcción, o tratar de averiguar por qué se les pide, y eliminar estas solicitudes (algunas llamadas relacionados con la localización están bien)

En lo personal me gustaría empezar con la opción CDN -. Funciona bien, sin complicaciones, conducido por otra persona con tubos de grasa

Para hacer frente a su primera pregunta, utilice la versión de código completo de manera local para el desarrollo, por lo que se puede obtener información de depuración más clara que apunta a una línea legible en la fuente, en lugar de la única línea la versión miniaturizada se reduce a. Usar la CDN para la producción.

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