2013-01-15 13 views
5

Czytałam ostatnio o SPA i jak to dobrze .. Zastanawiałem się, czy ktoś może powiedzieć, kiedy powinno się używać, a nawet lepiej, gdy nie powinno się używać SPA jak przejść z regularnych MVCSPA, złe rzeczy?

Odpowiedz

4

oprzyrządowania dla MVC (Rails, MVC4) jest znacznie bardziej dojrzały. Istnieje znacznie więcej dokumentacji koncentrujących się na rozwoju tradycyjnych witryn MVC. Single Page Tworzenie aplikacji jest trudne. Aplikacje o dużej gęstości JavaScriptu są trudne do napisania i mogą być bardzo trudne do debugowania.

Jeśli chcesz wskoczyć do SPA, spójrz na John Papa's video training series na Pluralsight.com - co, według mojej wiedzy, stanowi najlepszy punkt wyjścia do tworzenia aplikacji SPA. Albo studiuj Szkielet, ale to nie jest po prostu dla słabego (zwichnięcia?) Serca.

Jedna dalsza sugestia: jeśli jesteś programistą ASP.Net, zajrzyj do BreezeJS (http://www.breezejs.com) w celu zarządzania danymi.

0

Ten blog post daje dobry przegląd niektórych potencjalnych problemów ze SPA, wraz z propozycjami obejścia tego problemu.

Potencjalne problemy to:

  • Przeglądarki nie są najlepsze gatunki obsługi pamięci i zbierania śmieci. Szczególnie jeśli chodzi o obsługę DOM. Na przykład elementy usunięte z DOM są przechowywane w pamięci. Jeśli pozwolimy użytkownikom pracy na DOM przez długi czas bez odświeżania, Przeglądarka może walczyć do policjanta z pamięci wydaje

  • Powinniśmy idealnie ponownego wykorzystania aż elementów DOM bez utylizacji. Ale nawet przy takim podejściu, jeśli użytkownik tworzy tysiące elementów DOM wielokrotnego użytku, gdy korzysta z aplikacji, przeglądarka może ucierpieć. Z drugiej strony, przecieki pamięci utworzone przez złe praktyki kodowania będą zbyt duże w długotrwałym DOM.

  • Jeśli potrzebujemy, aby pełna funkcjonalność zestawu produktów była dostępna jako pojedyncza aplikacja strony, może to być zbyt wiele kodu JS/CSS, aby być załadowanym od razu, wpływającym na początkowy czas ładowania.

1

Czytałam ostatnio o SPA i jak to dobrze ..

OSO prostu odwrócić odpowiedzialność przeglądarkę klienta. Tradycyjne aplikacje po stronie serwera wykonują większość pracy w backendach. SPA wykonują większość prac na front-end.

Dobrą rzeczą jest to, że generowanie widoków w kliencie oznacza, że ​​front-endowcy mogą wykonywać cały swój projekt w przeglądarce bez obawy o dotykanie backendu.

Oddzielenie widoku od modelu (tj. Kontrolery istnieją na obu końcach) oznacza, że ​​dane mogą zostać ujawnione jako REST API na serwerze i ponownie użyte dla klientów, którzy kierują reklamy na inne platformy (z poziomu urządzeń mobilnych, tabletu, smart tv).

Eliminowanie konieczności odświeżania za każdym razem, gdy wczytywana jest strona, zwiększa komfort użytkownika.

Zastanawiałem się, czy ktoś może powiedzieć, kiedy powinno się używać, a nawet lepiej, gdy nie powinno się używać SPA jak przejść z regularnych MVC

Przełączenie na budowę OSO od strony serwera MVC architektury mogą być dla niektórych bardzo trudnym zadaniem. Wielu programistów, którzy pracują na wyłączność w języku po stronie serwera, może po prostu nie znosić konieczności pracy z Javascriptem (szczególnie ci, którzy programują wyłącznie w statycznie napisanych językach).

Wykonanie prac SPA wymaga ponownego napisania i przekierowania adresu URL. Może to być bardzo mylące/wstrząsające doświadczenie, aby uzyskać pracę dla tych, którzy nie rozumieją serwera na niższym poziomie.

Użytkownicy, którzy domyślnie mają wyłączoną obsługę Javascript, nie będą mogli załadować witryny.

SPA wprowadza znacznie większe obciążenie klienta, ponieważ wszystko działa w głównym kontekście, co może spowodować powolne/niereagujące interfejs użytkownika. Istnieją rozwiązania pozwalające rozwiązać ten problem w nowszych frameworkach SPA, ale warto o tym pamiętać.

Pisanie kodu do przeglądarki znacznie różni się od pisania kodu dla serwera. W przeglądarce jest o wiele więcej złożoności (np. DOM).

Zestaw narzędzi do projektowania front-end jest drastycznie odmienny od tego, który zostałby użyty do opracowania większości języków po stronie serwera. Niektórzy programiści żyją i umierają za pośrednictwem swoich IDE.

Pobieranie danych dynamicznie za pośrednictwem Ajaxu może być początkowo bardzo trudne dla niektórych. Szczególnie deweloperzy, którzy nie mają solidnego zrozumienia HTTP.


Naprawdę, sprowadza się do jednego pytania. Czy chcesz poświęcić czas na naukę budowy SPA?