Könnte jemand dazu ein paar Hinweise geben?
Sagen wir, ich habe eine Reihe von Servicemodulen, Fabrikmodulen usw. und versuche eine große App in eckig zu erstellen, die eine große Anzahl von HTML-Elementen enthält, die unter verschiedenen Controllern angeordnet sind.
Nun, wenn ich diese Service / Factory-Module weiterhin in meine Controller als Abhängigkeiten einfüge (ich füge sie als Abhängigkeit hinzu, da ich kann sie jederzeit brauchen); Könnte das die Leistung meiner App beeinträchtigen? Sollten nur die verwendeten Module enthalten sein, um einen Overhead zu vermeiden?
Das Surfen hat mir nicht wirklich geholfen, einen klaren Einblick zu schaffen.
Ich habe die folgenden Anweisungen in eckigen Dokumenten gefunden:
Abhängigkeiten Module können andere Module als ihre Abhängigkeiten auflisten. Abhängig von einem Modul bedeutet, dass das erforderliche Modul geladen werden muss, bevor das anfordernde Modul geladen wird. Mit anderen Worten, die Konfigurationsblöcke der erforderlichen Module werden vor den Konfigurationsblöcken des anfordernden Moduls ausgeführt. Dasselbe gilt für die Laufblöcke. Jedes Modul kann nur einmal geladen werden, auch wenn mehrere andere Module es erfordern.
Asynchrones Laden Module sind eine Möglichkeit, die $ Injector-Konfiguration zu verwalten und haben nichts mit dem Laden von Skripten in eine VM zu tun. Es gibt bestehende Projekte, die sich mit dem Laden von Skripten beschäftigen, die mit Angular verwendet werden können. Da Module zum Zeitpunkt des Ladens nichts tun, können sie in beliebiger Reihenfolge in die VM geladen werden. Daher können Skriptlader diese Eigenschaft nutzen und den Ladeprozess parallelisieren.
Also, ich denke, wenn Sie Tausende von Modulen einschließen, ist die einzige Einschränkung der Speicher des Browsers reserviert, um sie in die Skriptumgebung zu laden. Ich hoffe, dies ist die einzige Einschränkung, weil ich überhaupt keine Zeit damit verbracht habe, in die js engine zu schauen, wie sie das Scripting tatsächlich macht.
Ich habe einen ersten Entwurf für einen Leistungsvergleich erstellt. Diese Testfälle enthalten keine, 100, 1000 und 2000 Module im App-Modul. Bis jetzt kann ich keinen bedeutenden Leistungsunterschied sehen! jsperf
Tags und Links angularjs performance