Izomorficzna aplikacja

0

Witam. Stoję przed wyborem sposobu renderowania aplikacji webowej. Wszystko oczywiście z wykorzystaniem node.js i vue. Pierwsze co mi przychodzi do głowy to renderowanie po stronie serwera i trochę renderowania w client side. Mniej więcej wyglądałoby to tak: ktoś wchodzi sobie na stronę, serwer wysyła wyrenderowany szablon itd., użytkownik przechodzi na drugą stronę (bez przeładowania stron, history api i te sprawy) a serwer wysyła przygotowany i sparsowany widok a client to wyświetla. Drugie to całkowity server side rendering. Trzeci to client side render. A czwarte? Nie wiem, dlatego proszę o pomoc. Po prostu chcę zrobić stronkę, gdzie nie trzeba będzie odświeżać całego dokumentu a jedynie część.

10

Nie ma tu najważniejszego elementu, ważniejszego od buzzwordów typu izomorfizm, server side rendering czy od modnych frameworków typu Vue.

Co ta aplikacja ma robić? Jakiego rodzaju wymagania ma spełniać, co ma się na niej znajdować, jakie problemy biznesowe ma rozwiązywać i na jaką skalę, jak często ma się odświeżać (np. porównaj sobie Facebooka z Wikipedią - ten pierwszy wymaga pracy w realtime, a Wikipedia już niekoniecznie).

Bo od tego należy wyjść a nie od technologii czy implementacji, bo te rzeczy mają znaczenie drugorzędne...

0

Chcę napisać system (o ile można to tak nazwać) pod bloga. Głównym moim założeniem jest to, aby był on realtime i bez przeładowywania strony. Przykładowo dodam artykuł czy coś innego i od razu wszyscy użytkownicy, którzy go przeglądają mogą bez odświeżania strony go przeczytać. I tu się pojawia problem bo nie wiem czy robić server czy client side render.

0

Korzystając z okazji zadam swoje pytanie, trochę w temacie: czy jeżeli zależy nam na seo (w końcu to system blogowy), to do client side rendering musimy dorobić server side rendering?

1

Głównym moim założeniem jest to, aby był on realtime i bez przeładowywania strony.
Przykładowo dodam artykuł czy coś innego i od razu wszyscy użytkownicy, którzy go przeglądają mogą bez odświeżania strony go przeczytać.

Pytanie tylko po to, czy warto coś takiego dodać do bloga. Jak często się będą pojawiały nowe wpisy? 10 razy dziennie? Czy raz na tydzień?
Wydaje mi się, że taka funkcjonalność przydaje się na portalach niusowych relacjonujących ważne wydarzenia, ale już raczej nie na typowych blogach z przepisami na szarlotkę, które czyta się na spokojnie.

A czwarte?

można by tak zrobić np.

  • kiedy klient wchodzi na stronę, serwer renderuje u siebie widok wstępny (w React da się robić server side rendering, w Vue nie jestem pewien, ale chyba też).
  • potem klient dociąga kolejne dane w postaci JSON za pomocą choćby AJAXa (albo WebSocketów).
  • klient dokonuje kolejnego renderingu, tym razem mając na wejściu dane z JSON

I tu trzeba sobie zadań pytanie kiedy klient ma dociągać dane - czy przy przechodzeniu na kolejną stronę? Czy może na żądanie klienta (poprzez jakiś przycisk odśwież). Czy może co jakiś ustalony czas (jeśli tak, to czy co sekundę, czy co minutę, czy co godzinę?). Czy może raczej klient powinien utrzymywać cały czas połączenie przez WebSockety i automatycznie dostawać apdejty?

Odpowiedzi będą zależeć od tego co robisz. Strona o szarlotkach mogłaby być aktualizowana przy przechodzeniu na kolejną stronę (czyli w zasadzie wszystko już można by renderować po stronie serwera), a strona, która relacjonuje rozdanie Oskarów na żywo, mogłaby być aktualizowana w czasie rzeczywistym (bo takie by były potrzeby projektu). Pytanie też o wydajność, żeby nie zadławić ani klienta (przez nadmierny client side rendering) ani serwera (przez nadmierną liczbę requestów), ale to już musisz znowu ustalić sobie na własną rękę.

bez odświeżania strony

Uważałbym z tym, bo robienie sobie ze sposobu odświeżania strony cargo kultu nie jest dobre. Kiedyś pamiętam wiele osób wierzyło (ja też), jakoby przeładowanie bez odświeżania strony zapewniało lepszą wydajność aplikacji. Jednak niestety rzeczywistość jest taka, że rzeczy, które mają dużo logiki u klienta są bardziej ciężkie (porównaj sobie szybką Wikipedię i powolnego Facebooka - mimo, że to właśnie Facebook wszystko renderuje "bez odświeżania strony").

0

poszukaj w google 'meteor js'. Po co wymyslac kolo od nowa??

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