ng-include
creerà un nuovo ambito e registrerà un orologio (su un'espressione di percorso utilizzato da ng-include
) su un ambito in cui viene utilizzato lo ng-include
. Mentre questo incorre in qualche elaborazione aggiuntiva è ancora basato su oggetti JavaScript e come tale è molto veloce. Nella maggior parte dei casi, l'effetto di un nuovo orologio più un ambito aggiuntivo dovrebbe essere totalmente trascurabile.
L'unica vera differenza che posso vedere è che ng-include
includerà/renderà il tuo parziale in modo asincrono, quindi potresti vedere un po 'di ritardo, specialmente quando recuperi i partial sulla rete (ma questo può essere mitigato dal pre-caricamento dei partial come qui descritta: https://stackoverflow.com/a/12346901/1418796)
in breve: nella maggior parte dei casi l'effetto di ng-include
dovrebbe essere trascurabile se parziali sono pre-caricati.
Un ultimo commento: "l'ottimizzazione prematura è la radice di tutti i mali". Non avviare le regolazioni delle prestazioni micr. Fino a quando non si misura la prestazione di e si determina che ng-include
è un collo di bottiglia.
fonte
2013-05-18 08:29:35
D'altra parte, ng-include (s) all'interno di ng-repeat (s) inizierà molto velocemente per mostrare grandi degradi delle prestazioni a causa del meccanismo asincrono. La migliore ottimizzazione che ho fatto nella mia app angularJS è stata la creazione di una direttiva ng-include-cache (sincrona quando si colpisce la cache). – Guillaume86
@ Guillaume86: Ti interessa condividere il codice sorgente per quella direttiva? Sarei molto interessato – paldepind
@paldepind qui è: https://gist.github.com/guillaume86/9272837 ma probabilmente vorrai scriverne uno nuovo con l'ultimo codice ngInclude dall'ultima versione angolare. Il mio ha usato un vecchio 1.0.x come base. – Guillaume86