SPA Single Page Application, powody, motywacje, historia

0

Dwa pytania, przy czym nie pytam szczególnie o jakąś konkretną bibliotekę/ framework.

  1. DLACZEGO filozofia SPA jest tak ważna, czy są to fakty/pomiary obiektywne, czy subiektywna wiara (refleksja znad znowelizowanego gmaila, który udostępniania to co najważniejsze, czyli informacje 2 sek później niż "stara gorsza" wersja)
    Czy filozofia SPA nadal jest użyteczna, jeśli aplikacja ma zupełnie niezależne funkcjonalności - czy przeszkadza. Przecież wspólny wygląd, główka, stopka, nawigacja i wspólne CSS (plus AJAX) to nie jest jakaś nowość
  2. Czy użycie którejś z bibliotek frontednowych (react.js, angular) determinuje przymus SPA?

Ponieważ punkt widzenia zależy od punktu siedzenia, objaśnię swój: backendowcy aspirujący do fullstack, rozległe aplikacje klasy intranet

1

ad 1

  • bo user lubi jak zamiast mielenia przeglądaki ma ładną animacje
  • bo pozwala to lepiej oddzielić prace frontendwoców od backendowców tworząc 2 niezależne projekty ze wspólnym interfejsem komunikacji
  • bo gdy masz np chat na stronie (np fb) to przy przewinięciu strony ponowne wczytywanie wszystkiego i wyskakiwanie chata źle wygląda i po prostu wkurza
  • bo jest to wydajniejsze dla serwera - przy przejściu wczytywany jest tylko content a reszta rzecz która musi wczytana przy każdym wejściu już po prostu jest

ad 2 nie

3

Nie jest prawdą, że SPA magicznie szybko się wczytuje, bo właśnie pierwsze ładowanie potrafi być długie (co czasami określa odbiór strony), bo wszystkie zasoby ładowane są od razu, ponadto zależne jest to od sprzętu użytkownika.
Oczywiście można mówić, że w MPA zasoby non stop wczytywane są od nowa, lecz przy wykorzystaniu cache nie jest to do końca prawdą.
Problem jest też z SEO, co w sumie dziwne zważywszy, że samo google promuje angulara :)
Pod względem technicznym SPA wydają się droższe, czasami trudniejsze w utrzymaniu.
Goownianą stronę można zrobić zawsze czy to SPA czy MPA, kwestia przemyślenia projektu lub jego braku.

1

A no i zapominałem jeszcze o jednej zalecie, która już nie raz została wykorzystana w projektach gdzie uczestniczę: gdy backend to api a nie miszmasz wypluwający html to pisząc apke na fona koszty produkcji mocno maleją bo api już jest.

5

DLACZEGO filozofia SPA jest tak ważna, czy są to fakty/pomiary obiektywne,

SPA to po prostu kolejny buzzword, który polega na próbach robienia w przeglądarce aplikacji w stylu desktopowym.

Kiedyś to już było. Mieliśmy applety Javy, aplikacje we Flashu, teraz JavaScript.

No i kiedyś się to nie nazywało SPA, ale RIA (Rich Internet Application).

Teraz natomiast jest kolejny buzzword PWA (Progresssive Web Apps), który niby nie znaczy to samo, i wnosi pewne świeże idee (np. wymóg tego, żeby w offline dobrze działało), ale mimo wszystko to bardziej ewolucja niż rewolucja. Podstawowa idea to: aplikacje działające w przeglądarce (aplikacje, w odróżnieniu od zwykłych stron), co najwyżej technologie się zmieniają, a konkretne idee trochę tam ewoluują wraz z kolejnymi potrzebami internetu*

Swoją drogą taka aplikacja wcale nie musi działać bez przeładowania strony. Przecież nawet zwykłe fora internetowe to też pewnego rodzaju aplikacje. Ok, strona się przeładowuje, ale idea jest podobna - użytkownik ma możliwość interakcji z taką aplikacją, może pisać posty itp.

Jak dla mnie to, czy coś jest SPA czy nie, tj. czy działa przeładując stronę czy nie, to bardziej szczegół implementacyjny. Pewne rzeczy można łatwiej (albo lepiej, w bardziej przyjazny dla użytkownika sposób) zaimplementować jako SPA (np. aplikacje typu Facebook), pewne rzeczy w ogóle na SPA nie skorzystają, więc prościej będzie wygenerować wszystko na serwerze, a niektóre strony mogą zawierać pewne elementy SPA (np. to forum - nie jest SPA, ale zawiera elementy SPA, które polegają na tym, że pewne rzeczy na tym forum można zrobić bez przeładowania strony).

*Niedługo pewnie ktoś ukuje skrót GWA (GDPR Web Application), który będzie polegał na tworzeniu aplikacji zgodnych z RODO...

0
LukeJL napisał(a):

DLACZEGO filozofia SPA jest tak ważna, czy są to fakty/pomiary obiektywne,

SPA to po prostu kolejny buzzword, który polega na próbach robienia w przeglądarce aplikacji w stylu desktopowym.

Zresztą nawet właśnie ostatnio ktoś chciał zrobić SPA w jquery i też się da (na upartego) :)
Takim w sumie połączeniem (pogodzeniem?) jest stary i sprawdzony ajax, wrzucasz kontent bez przeładowania, ale jednocześnie nie obciążasz zbytnio użytkownika skryptami js, ale wiadomo google promuje wymyślanie koła od nowa, bo hajs musi się zgadzać.

2
AnyKtokolwiek napisał(a):
  1. DLACZEGO filozofia SPA jest tak ważna(...)

A jest? Myslalem ze technologie i architekture wybiera sie zaleznie od problemu, doswiadczenia programistow itp. Swoja droga Gmail byl oparty o SPA juz przed niedawnymi zmianami.

Czy filozofia SPA nadal jest użyteczna, jeśli aplikacja ma zupełnie niezależne funkcjonalności - czy przeszkadza. Przecież wspólny wygląd, główka, stopka, nawigacja i wspólne CSS (plus AJAX) to nie jest jakaś nowość

Spojny wyglad nie ma nic wspolnego ze SPA.

Ktos wyzej wspomnial backend jako miszmasz logiki i UI- tu rowniez SPA (a raczej jego brak) ma niewiele do rzeczy. Jest to zwyczajnie zla architektura wynikajaca z braku podzialu modularnego. Natomiast jesli mamy mikroserwisy, a wiec i API enkapsulujace logike domenowa to nic nie stoi na przeszkodzie by miec aplikacje MVC ktora korzysta z tegoz API. W takim wypadku backend MVC po prostu spelnia role API Gateway.

0

Można napisać, że internet zatacza koło, były skrypty w jednym pliku, potem rozbijanie na mniejsze (ładujesz co jest akurat potrzebne) obecnie wracamy do jednej paczki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1