Ich arbeite an einer relativ großen ExtJS MVC-Anwendung mit rund> 40 Controller,> 100 Stores,> 100 Modelle und so weiter. Ich folge der möglichen MVC-Methode nicht strikt, also habe ich eine Lazy-Controller-Initialisierung implementiert, die den Controller zuerst initialisiert, wenn es benötigt wird und so die Speicher. Ich registriere auch keine Ansicht innerhalb eines Controllers, aber das muss ich einfach nicht tun.Wie Profil (Debug) ExtJS EventPipe/Ereignisse
Jetzt kommt es, dass Formulare (geöffnet in einem Ext.window.Window) etwa 1-2 Sekunden dauern, bis sie angezeigt werden, während die gleiche Form in einem eher kleinen Projekt sofort auftaucht. Also die Form (Layout) kann hier nicht das Problem sein, was mich zu den Ereignissen gebracht hat. Aber ich weiß nicht wirklich, wie das am besten wäre oder gibt es schon ein gutes Tutorial, wie man das macht. Ich denke, es wäre schön, dies zu profilieren, um zu sehen, wie lange die gesamte Pipe dauert (nicht nur die EventPipe selbst).
Ereignisstruktur:
Die meisten Veranstaltungen erhalten über control()
der verantwortlichen Controller registriert. Alle anderen Ereignisse sind höchstens mit { single: true }
registriert. Die Fenster werden geschlossen und bei erneuter Verwendung wiederhergestellt.
Btw, reinigen Sie Ihre Controller korrekt? Wenn Sie einen Controller zerstören, werden die Listener auf dem EventBus nicht vom Framework bereinigt. Entschuldigung, keine Antwort auf deine Frage, aber verwandt. – mistaecko
@mistaecko Vielen Dank für diese zusätzlichen Informationen! Das ist wirklich gut zu wissen! Aber momentan recycle ich die Controller nicht mehr, sobald sie initialisiert sind, also sollte das keinen Effekt haben. Soweit ich aus meinem Blick auf den Quellcode weiß, werden die Controller in einer internen Sammlung des ApplicationControllers gespeichert. Aber ich denke, es ist nicht mit einem einfachen Profiling von Event-Displacements gemacht. – sra
Wenn Sie jemals entscheiden, Ihre Controller zu bereinigen, dann lesen Sie meine Antwort, wie man Controller hier zerstören: http://stackoverflow.com/questions/12330846/how- to-delete-controller-extjs/12344788 # 12344788 – mistaecko