Consente di dire che vogliamo una libreria di pezzi javascript a base di funzionalità (sto pensando jquery): Ad esempio:Come gestire i moduli Javascript nei template di Django?
- un ajax dialogo
- un selettore di data
- una forma validatore
- una scorrevole barra dei menu
- una fisarmonica thingy
ci sono quattro pezzi di codice per ciascuno: alcuni Python, CSS, JS, & HTML.
Qual è il modo migliore per organizzare tutti questi pezzi in modo che:
- ogni 'modulo' JavaScript può essere ordinatamente riutilizzati da diversi punti di vista
- i quattro bit di codice che compongono la permanenza funzione completata insieme
- i css/js/html parti appaiono nelle loro posizioni corrette nella risposta
- dipendenze comuni tra moduli non si ripetono (es: un file javaScript in comune)
x --------------
Sarebbe bello se, o c'è qualche modo per garantire che, quando chiamato da un templatetag, i modelli rispettato il {blocco% %} direttive. In questo modo è possibile creare un singolo modello con un blocco ciascuno per CSS, HTML e JS, in un singolo file. Richiamalo tramite un templatetag che viene chiamato dal modello di qualsiasi visualizzazione lo desideri. Questo ha un senso. Può essere fatto in qualche modo già? I miei template templatetag sembrano ignorare le direttive {% block%}.
x --------------
c'è qualche molto rilevante gasbagging di mettere tali mezzi in forme qui http://docs.djangoproject.com/en/dev/topics/forms/media/ che probabilmente si applicano agli esempi Form Validator e la data picker.
Grazie Peter. Ci sono routine di compressione js là fuori che potrebbero essere un utile ripensamento in un pezzo di Response Middleware; tuttavia questa domanda riguarda il modo migliore per creare un progetto di django per facilitare l'uso di molte javascript nelle risposte senza che il malingiglio della fonte diventi caotico. Mi aspetto che "include" e "templatetags" saranno coinvolti in qualche modo. –
Hai ragione: ho avuto una conversazione nella mia testa e ti ho dato solo metà. Abbiamo provato a utilizzare i 'modelli di utilizzo per includere solo i file JS per qualsiasi pagina', ma in due clic l'utente ne avrebbe comunque risucchiati il 95%. Piuttosto che mangiare tutti questi download separati e dover gestire la confusione di assicurarsi che ogni pagina includesse le cose giuste, abbiamo provato a inserirle tutte in un file concatenato e minimizzarlo. Il risultato è stato sorprendentemente piccolo e abbiamo quindi inserito il tag di collegamento nel modello di base. Fatto. –
Sono d'accordo con Peter qui - Probabilmente è più facile solo concatenarli insieme e permettere all'utente di scaricarli tutti in una volta. Guarda le risorse di django come un modo semplice per gestire la concatenazione: https://launchpad.net/django-assets – sheats