18.06.2019 / Technologie informatyczne

Single Page Application – czym się różni od tradycyjnego podejścia

W dzisiejszych czasach, wchodząc na stronę internetową, użytkownicy oczekują, że załaduje się ona w kilka sekund. Większość stron spełnia te oczekiwania, lecz w momencie, gdy użytkownik przechodzi na podstronę lub wybiera kryterium sortowania, strona się odświeża. Nie ma to większego znaczenia dla użytkownika. Musi po prostu poczekać dodatkową sekundę i „doświadczyć” gdy wszystkie elementy na stronie załadują się ponownie. Od strony backendu sprawa jest bardziej złożona. Strona wysyła funkcję do serwera, po czym dostaje odpowiedź i wprowadza zmiany na stronie.

Jest to klasyczny przykład Multiple Page Application (MPA) – najczęściej (obecnie) stosowanego rozwiązania w tworzeniu stron internetowych i aplikacji webowych. Jednak MPA ma jedną dużą wadę – przy każdej interakcji z użytkownikiem serwer raz za razem wysyła wszystkie elementy strony, nawet te, które zostają niezmienne, lecz tak czy inaczej muszą być odświeżone.

Aby skrócić czas zmiany elementów na stronie, stosowane jest podejście Single Page Application (SPA), które zamiast pobierać całą stronę od serwera, gdy użytkownik wykonuje działanie, dostaje natomiast tylko pakiet danych, które muszą zostać zmienione na stronie. W tym wypadku serwer nie zwraca kilka tysięcy linijek kodu, lecz tylko dane elementów do zmiany. Dzieje się to dzięki wcześniejszemu załadowaniu całości strony, które jednak trwa dłużej, niż w przypadku MPA.

Zastosowanie podejścia SPA

SPA najbardziej sprawdza się w online kalkulatorach, serwisach do rezerwacji lub innych stronach, które opierają się o wprowadzonych przez użytkowników danych. Takie strony potrzebują szybko zmieniać zawartość strony lub oddzielnych elementów w momencie, gdy użytkownik zmienia wpisane przez niego dane. SPA także doskonale pasuje dla tworzenia systemów CRM i ERP, gdzie interakcje pomiędzy użytkownikami i systemem są częste oraz polegają głównie na zmianie elementów. Chociaż kilkakrotne odświeżanie elementów nie jest aż tak zauważalne przez użytkowników, jednak wpływa to w pewnym stopniu na user experience. SPA pozwala na gładkie przejście pomiędzy zmianami w ułamek sekundy, niwelując czas oczekiwania oraz „mruganie” elementów podczas odświeżania.

Jednak nie zaleca się stosowanie podejścia SPA do stron internetowych, dla których ważne jest SEO. Chociaż Google twierdzi, że wyszukiwarka jest w stanie indeksować strony typu SPA, jednakże odbywa się to dużo dłużej i może negatywnie wpływać na pozycję w wynikach wyszukiwania.

Zalety Single Page Application

W SPA backend i frontend są niezależne, dzięki czemu programiści nie muszą posiadać wiedzy z  zakresu technologii stosowanych we wszystkich aspektach tworzenia strony czy systemu. SPA pozwala programistom wybierać wąską specjalizację oraz skupiać się na rozwiązaniach, nie zwracając uwagi na frontend czy backend. Jest to także zaletą dla dyrektora działu IT. Przejrzyste podzielenie programistów na frontendowców i backendowców ułatwia zarządzanie zespołami oraz delegowanie zadań. Ponadto, popularność SPA rośnie wśród programistów, więc stosowanie technologii, którymi są zainteresowani pracownicy, zwiększa ich zaangażowanie i efektywność pracy.

Z punktu widzenia klienta, SPA jest dobrym rozwiązaniem, ponieważ pozwala tworzyć nowy projekt graficzny bez dodatkowych kosztów przygotowania nowej strony „od zera”. Z racji tego, że frontend i backend są tworzone oddzielnie, układ i design może być zmieniony bez wprowadzenia zmian do kodu ze strony backendu. Z tego samego powodu przy wykorzystaniu SPA opracowanie aplikacji mobilnej czy webowej jest dużo łatwiejsze niż w MPA. Ponieważ backend posiada tylko dane elementów, które powinne znaleźć się na stronie czy w aplikacji, ich wygląd czy układ zależy wyłącznie od frontendu. Dzięki temu klient ponosi niższe koszty rozwoju na różne platformy, gdzie strona czy aplikacja może wyglądać zupełnie inaczej, lecz posiadać te same elementy.

Mikroserwisy w SPA

Mikroserwisy są oddzielnymi elementami, które mogą być zmieniane niezależnie od innych elementów strony czy systemu. Mają one na celu zmniejszenie obciążenia serwera, szczególnie w przypadku dużych systemów i rozbudowanych platform. W połączeniu z SPA mikroserwisy zmniejszają złożoność systemu, upraszczając jego zarządzanie. Niezawisłość mikroserwisów pozwala włączyć lub wyłączyć je w systemie bez większego wpływu na inne elementy czy system w całości.

Chociaż Single Page Application jest zaawansowaną technologią i wymaga większego doświadczenia, posiada ona dużo zalet zarówno dla programistów, jak i klientów. Zastosowanie SPA w tworzeniu systemów CRM i ERP pozwala efektywniej korzystać z modułów, usprawniając pracę użytkowników systemu. W przypadku zwykłych stron internetowych SPA nie ma dużego znaczenia dla internautów, ponieważ w większości przypadków nie wykonują wiele czynności, kiedy odwiedzają strony internetowe. Także witryny, które w głównej mierze są oparte o publikację różnych informacji (np. aktualności lub artykułów) nie potrzebują SPA, ponieważ interakcje z użytkownikami nie są tak częste w porównaniu do systemów zarządzania, gdzie wykorzystanie SPA jest bardziej wygodne.