2011-12-15 13 views
5

¿Cuál es la forma más sencilla de combinar archivos JavaScript en un solo archivo en un proyecto de Django?Combinación y compresión de múltiples archivos JavaScript en un único archivo en un proyecto de Django

Explicación

Quiero que esto funcione con Ember.js/Backbone donde (por lo general) tiene muchas JavaScript diferente en varios directorios. Directorios estarían todos en una carpeta llamada app/por ejemplo, como: app/views/app/models// app/routers/

Requisitos

  • trabajo junto con la aplicación staticfiles
  • aún separarse mientras que en el modo de desarrollo para la depuración más fácil (sólo compilar al llamar collectstatic?)
  • Trabaja con Require.js (supongo que no debería ser demasiado difícil, pero ponerlo en aquí para estar seguro)

Crédito adicional

explicar una mejor manera de combinar las prácticas de Django y Ember/Backbone.

Respuesta

4

Soy un feliz usuario del compresor de Django, que no combinan, Minify, depuración de usar, que puede utilizarlo con staticfiles, fácil de conectar a backend almacenamiento personalizada (ej. S3)

https://github.com/jezdez/django_compressor

0

Como se mencionó en la respuesta anterior, django-compressor es agradable, pero a menudo se obtienen mejores tiempos de carga cuando se usa un cargador de JavaScript dedicado. Mi consejo es echar un vistazo a Head.js, por ejemplo (http://headjs.com/) (hay otros tantos por ahí también). A menudo, la combinación de secuencias de comandos puede ser contraproducente al considerar el almacenamiento en caché, utilizando javascript ubicado en CDN: s, etc.

Una cosa para recordar es que Iphone 3/4 solo almacenará 15/25KB de javascript, por lo que si tiene scripts y Combínalos, puedes tener problemas. http://www.phpied.com/iphone-caching/

1

La razón por la que desea combinar muchos archivos en uno es para minimizar la latencia de configuración y demoras en las solicitudes http, cuanto menos se mejora. Sin embargo, muchos navegadores más nuevos están descargando archivos JavaScript en paralelo (aún se ejecutan secuencialmente). La consecuencia es que la descarga de un solo archivo de 1 Mb puede ser más lenta que tres archivos de 350 Kb.

puede usar desde CDN.

Cuestiones relacionadas