2012-08-22 16 views
7

Zaczynam pracować z Sencha Touch 2 i zastanawiałem się, jak to działa (nawet jeśli) radzę sobie z oczyszczaniem zasobów.W jaki sposób środowisko oczyszczania Sencha Touch 2

W szczególności:

  • wyobrazić mamy kilka kontrolerów, które są wywoływane przez URL przekierowania. Czy te egzemplarze kontrolera zostaną zbuforowane lub gdy Sencha tworzy nowe instancje za każdym razem, gdy potrzebuje wywołać metodę na kontrolerze Tak samo dla widoków. Czy widoki pamięci podręcznej sencha lub odtwarzają je za każdym razem, gdy trzeba je ponownie wyświetlić. Kiedy dokładnie są zniszczone widoki (jeśli są)?

  • Czy mogę uzyskać kontrolę nad tym, jak sencha obsługuje te rzeczy?

Odpowiedz

11

Aby odpowiedzieć na Twoje pytania,

  1. 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.

  2. 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

+0

Ś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

+0

:) Cieszę się, że wiem, że to pomogło. Odpowiedziałbym wcześniej, gdybym to zobaczył! – Swar