arrow-to-top
Single Page Application

! Single Page Application

Single Page Application

Technologie, w których tworzone i ulepszane są aplikacje internetowe, rozwijają się tak dynamicznie, że to co dziś jest nowoczesne, jutro może być już przestarzałe. Choć SPA narodziło się lata temu, obecnie wraca do łask programistów i coraz częściej nadaje się temu miano rewolucyjnego rozwiązania. Czym właściwie jest SPA? To akronim od “Single Page Application” co w wolnym tłumaczeniu oznacza po prostu “Aplikacja na jedną stronę”. Często pojęcie to mylone jest ze stronami typu “One Page” i choć rzeczywiście oba wyrażenia wydają się brzmieć podobnie, mają ze sobą niewiele wspólnego.

 

Według definicji wikipedii SPA to aplikacja bądź strona internetowa, która wczytuje się w całości, a kod potrzebny do jej działania przesyłany jest dynamicznie w zależności od interakcji użytkownika z systemem. W odróżnieniu do SPA strony typu “One Page” są statyczne, a działania ograniczone są do przewijania strony w odpowiednie miejsca. MPA z kolei (“Multi Page Application”) to aplikacje działające w “tradycyjny” sposób, które wysyłają do serwera zapytania generując w odpowiedzi nowe strony.

 

Dlaczego SPA?

Przede wszystkim aplikacje typu SPA są bardzo wydajne, ponieważ zasoby niezbędne do jej działania pobierane są tylko raz, a wykorzystując pamięć lokalną i cache można gromadzić niezbędne dane nawet w trybie offline. Proces wytwarzania takiej aplikacji jest również wygodniejszy dla deweloperów, ponieważ nie muszą oni pisać kodu renderującego nowej strony po stronie serwera, a cała jej logika może zostać wykorzystana również w aplikacji mobilnej. Poprawianie i eliminacja występujących błędów również jest uproszczona ze względu na łatwe debugowanie takiej aplikacji z użyciem Google Chrome.

 

Wady SPA

Niestety bardzo trudno jest zoptymalizować aplikacje SPA pod kątem SEO, ponieważ treści na stronie są wyświetlane dynamicznie. Oczywiście technologia stale się rozwija i dziś można już przeciwdziałać temu problemowi, ale nadal jest to pracochłonne. Kolejnym istotnym problemem jest używanie przez większość aplikacji ciężkich frameworków, które muszą zostać załadowane po stronie klienta. W porównaniu do tradycyjnych aplikacji SPA jest również mniej bezpieczne, ponieważ istnieje możliwość wstrzyknięcia skryptów przez użytkowników, które mogą wyrządzić wiele szkód. Pomimo ogromnej zalety jaką jest szybkość działania aplikacji SPA, łatwo o wyciek pamięci Java Scriptu co może spowodować ogromne spadki wydajności.

 

Dlaczego MPA?

Tradycyjne aplikacje, o których była mowa wyżej to właśnie aplikacje MPA. Są one bardziej rozbudowane i mają więcej poziomów UI (można to rozwiązać wykorzystująć AJAX, ale wtedy wytwarzanie takiej aplikacji jest trudniejsze) niż SPA. W odróżnieniu do SPA dużo łatwiej zoptymalizować MPA pod kątem SEO, ponieważ dla każdej podstrony można zdefiniować inne słowa kluczowe. Inną zaletą jest bardziej intuicyjna mapa wizualna aplikacji z rozbudowanym menu, ale to zależy od indywidualnych preferencji użytkowników.

 

Wady MPA

Niestety aplikacje MPA, w przeciwieństwie do SPA, są trudniejsze w implementacji na urządzenia mobilne. Jakby tego było mało, deweloperzy potrzebują używać frameworków zarówno po stronie klienta jak i serwera, to wszystko znacząco wydłuża proces tworzenia aplikacji typu MPA.

 

SPA czy MPA?

Łatwo zauważyć, że tak naprawdę nie ma jednoznacznej odpowiedzi na to pytanie. Zarówno SPA i MPA można wykorzystać do tych samych celów, zmienia się tylko poziom trudności w implementacji danego rozwiązania. Innym wyjściem jest stworzenie własnej hybrydy wykorzystującej najlepsze cechy z SPA i MPA.