Aby odpowiedzieć na Twoje pytania,
tylko jedna instancja każdego kontrolera jest tworzona przez Sencha. Tak naprawdę uważam, że nie musisz martwić się o instancje kontrolera. Niech Sencha sobie z tym poradzi.
Oczyszczanie należy w rzeczywistości wykonywać z widokami, ponieważ liczba widoków i ich złożoność są ściśle związane z wydajnością.
Sencha nie oczyszcza specjalnie swoich zasobów - programista musi wyraźnie zadbać o czystość DOM (poza samym mechanizmem odśmiecania Javascript). Tak więc deweloper musi zdecydować, kiedy utworzyć widok, czy zachować go w DOM do wykorzystania w przyszłości, czy też zniszczyć, gdy tylko zostanie ukryty. Podam kilka przykładów:
A.
Załóżmy na kliknięcie przycisku, użytkownik otwiera Okno z informacją, która pokazuje informacje o stronie. Gdy użytkownik przeczyta informację, zamyka okienko wyskakujące. Teraz z perspektywy użytkownika może być bardzo mała szansa, że użytkownik ponownie otworzy popup. Najlepiej będzie , jeśli wyskakujące okienka zostanie usunięte z DOM, gdy tylko użytkownik je zamknie. W każdym razie, jeśli użytkownik chce ponownie go otworzyć, ponownie utwórz wyskakujące okienko i pokaż to.
B.
Podobnie Przypuśćmy, że użytkownik jest w stronę logowania i zalogować się do aplikacji . Użytkownicy prawie nie wracają do strony logowania w aplikacji . Tak więc zniszcz instancję widoku logowania, gdy jest ona ukryta.
Oto niektóre scenariusze, w których Widoki można w razie potrzeby usunąć jawnie.Poniżej znajduje się kilka odnośników, które daje dobre wyobrażenie o optymalizacji pamięci z Sencha:
a) Sencha Touch: Optimizing Memory Usage
b) http://www.slideshare.net/senchainc/optimizing-performance
Świetna odpowiedź. Nadal nie mogę uwierzyć, że najpierw musiałem zacząć nagrodę, żeby pokonać soneone na odpowiedź :-) Zauważyłem, że istnieje rozszerzenie o nazwie http://deftjs.org, które obsługuje te rzeczy trochę inaczej, jak się wydaje – Christoph
:) Cieszę się, że wiem, że to pomogło. Odpowiedziałbym wcześniej, gdybym to zobaczył! – Swar