Ho una pagina che ha molti gestori di eventi. Il codice ora ha raggiunto oltre 1000 linee di codici e sto cominciando ad avere difficoltà a leggere i codici. Ora sto pianificando di separare i codici in file diversi. La mia domanda è, ci sono degli svantaggi nel separare i codici JS in file diversi?Svantaggi della separazione dei codici JavaScript?
risposta
svantaggi?
un'altra richiesta HTTP. gli sviluppatori consigliano che i file siano compressi e siano nel minor numero possibile di file per l'ottimizzazione. meno file si richiedono, più veloce (poiché ci sono meno viaggi di andata)
se si utilizza un editor di testo con un completamento automatico, alcuni di questi editor non raccoglieranno il materiale dall'altro file per il completamento automatico. questo può essere un problema se non memoize le funzioni che hai.
se uno di questi file interdipendenti non è stato caricato, l'app si interromperà.
Lo svantaggio sarebbe la maggiore complessità nell'assicurarsi di includere tutto correttamente. Ma 1000 linee diventano ingombranti. Here's a related page about calling JavaScript objects in separate files
La pratica migliore è quella di creare file relativamente piccoli per scopi di sviluppo in cui ogni file contiene un modulo di funzionalità che è tutto legato (ciò che è più efficace per il controllo dello sviluppo/debug/editing/source. È possibile dare ad ogni presenta un nome significativo che descrive ciò che è in esso. Ognuno di questi file può essere gestito separatamente (la propria cronologia delle versioni nel sistema di controllo del codice sorgente, check in/check out, ecc ...). È spesso più facile avere più schede aperte con file separati nel tuo editor piuttosto che provare a usare i segnalibri per saltare tra diversi luoghi in un file di grandi dimensioni, ecc ...
Quindi, quando vai a distribuire la tua app, usi uno strumento (come Google chiudi ure o YUI Compressor) per minimizzare e combinare tutti i file più piccoli in un unico file di implementazione. Ciò preserva i vantaggi dello sviluppo di file più piccoli che contengono codice correlato preservando al tempo stesso il vantaggio di distribuzione della maggior parte/tutto il codice in un file javascript esterno più grande che può essere scaricato in una richiesta http e può essere memorizzato nella cache in modo molto efficace.
In aggiunta al mio commento.
Utilizzare i modelli T4 da here, oppure è possibile utilizzare C# per scrivere JavaScript script#
in piattaforme moderne, gli sviluppatori non scrivere javascript direttamente, ad esempio
- in Rails, utilizzando CoffeScript
- in python, utilizzando uno (py2js, pigiama, google V8, skulpt)
- in C#, utilizzando la sceneggiatura n.
La presenza di codice separato in file diversi aiuta la manutenzione. Ti suggerirò di dividerlo in moduli compatibili con CommonJS, se stai lavorando in un ambiente browser puoi usare RequireJS per caricarli. È inoltre possibile utilizzare l'utilità fornita per creare un singolo file quando si distribuisce il sito Web/webapp per ottimizzare le richieste http.
Ecco un post su Bolg JSminify e strumenti simili per l'uso con VisualStudio e costruire l'automazione: http://encosia.com/automatically-minify-and-combine-javascript-in-visual-studio/
- 1. separazione della logica e UI in titanio (javascript)
- 2. Slidify: allineamento dei codici
- 3. Svantaggi della dichiarazione anticipata?
- 4. Vantaggi/svantaggi dei puntatori automatici
- 5. Svantaggi di "pattern var singolo" di Javascript
- 6. Svantaggi della dichiarazione anticipata della classe C++?
- 7. Lua e C++: separazione dei compiti
- 8. BEM: la separazione dei blocchi dal layout
- 9. uscita QUnit: separazione visiva dei moduli
- 10. Individuazione della separazione Cielo/Terra in OpenCV
- 11. Svantaggi dei corpi addormentati in Box2D
- 12. Codici latini inclusi nel codice JavaScript Regex
- 13. Javascript: diversi codici chiave su diversi browser?
- 14. Specifiche di assegnazione dei codici iOS
- 15. Svantaggi dell'altezza della linea senza unità?
- 16. Svantaggi della funzione CallbyName in VB.NET?
- 17. iCanHaz.js - modelli di separazione?
- 18. rimozione di spazi non di separazione in javascript
- 19. Elenco dei codici di uscita dell'applicazione Windows
- 20. Strumento di confronto dei codici per Linux
- 21. Come testare rapidamente alcuni codici javascript?
- 22. Che cos'è l'albero dei dispositivi Vantaggi e svantaggi?
- 23. UISegmentedControl con colore personalizzato: bug della linea di separazione
- 24. Separazione dei dati di configurazione e della logica di script negli script Perl
- 25. Separazione orizzontale e verticale dei pulsanti di Twitter Bootstrap
- 26. Separazione di JavaScript nelle viste del rasoio cshtml
- 27. Gioco multiplayer JavaScript creato con Node.JS - Separazione giocatori
- 28. GWT - Separazione del ruolo del relatore dall'attività
- 29. Come gestite i nomi dei TLD dei codici paese nei vostri pacchetti/spazi dei nomi?
- 30. Svantaggi della clonazione superficiale su Travis e altri servizi CI?
Una cosa che viene subito in mente è un'altra richiesta di rete. Suggerirei di avere un file dev leggibile o più file ma un file minified eo gzip per la produzione. – Kumar
(Modifica: Kumar mi ha battuto su di esso, ma penso che manchi ancora la mancanza di richieste simultanee.) L'unica cosa significativa che posso pensare è che caricare diversi file JS può essere un po 'lento. Dal momento che possono entrare in conflitto, solo uno può caricare alla volta (anche se i browser potrebbero aver iniziato a lavorarci intorno - non hanno fatto il check-in negli ultimi anni). Anche se potresti sempre raggruppare insieme alcuni file nella build di produzione. – Corbin
d'accordo con Kumar - sebbene dirai che non vedrai molta differenza di prestazioni a meno che tu non abbia molti più file con molto più codice. – dbrin