Javascript modularizzazione oggetti di grandi dimensioni
-
28-09-2019 - |
Domanda
Ho un oggetto definito come una funzione, e che ha un sacco di metodi e proprietà in esso, quali sono alcuni modi per modularizzare questo per renderlo più gestibile? E 'possibile inserire funzioni all'interno dell'oggetto in file esterni?
Modifica:
Qualcuno ha detto in una risposta per includere altri file, ma questo avrebbe una pagina HTML poco gestibile, IE:
<script type="text/javascript" src="script1.js"></script>
<script type="text/javascript" src="script2.js"></script>
<script type="text/javascript" src="script3.js"></script>
....
<script type="text/javascript" src="script76.js"></script>
C'è anche un modo per strutturare il codice in modo è necessario un solo riferimento il file javascript?
Soluzione
var myobj = {
somefunc: function() { /* function code */ },
prop: "some string",
// etc.
};
e in un altro file js incluso dopo il codice di cui sopra
myobj.anotherfunc = function () { /* function code */ };
Altri suggerimenti
Si può voler controllare RequireJS . Consente di definire le funzioni, i moduli, le dipendenze ei file JavaScript esterno carico da Javascript (possibilmente asincrona).
è possibile utilizzare uno script lato server per gestire i javascript, con JSMin si potrebbe anche accelerare il processo (se nella cache).
Sto pensando a un somthing script come questo: scripts.php
<?php
$files = array('script1.js', 'script2.js');
$output = '';
foreach($files as $file){
$output .= file_get_contents($file);
}
header("Content-type: application/x-javascript");
echo $output;
?>
your html
<script type="text/javascript" src="/script.php"></script>
Si potrebbe anche solo includere tutti i file js all'interno di una cartella, basta generano la matrice tramite scansione della cartella o qualcosa del genere, penso che si ottiene l'idea!
saluti Nexum
Si potrebbe provare questo:
http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm
... ma migliori pratiche sono per includere solo i file che si desidera nella pagina HTML principale