Co robią frameworki JavaScriptowe?

0

Jaki jest sens używania np. AngularJS albo EmberJS?
Co te frameworki dają?
Oglądałem parę tutoriali na temat właśnie tych frameworków i nie rozumiem idei ich używania/istnienia...

jQuery zrobione zostało po to, żeby uprościć pisanie w JS i żeby wyeliminować problem kompatybilności z różnymi przeglądarkami.

Ale np. tutaj gość tworzy coś w ember.js.
Jaki ma sens tworzenie appki w taki sposób?

Może ktoś poda jakiś praktyczny przykład do jakiego typu appki wykorzystanie takiego ember/angulara jest uzasadnione i rzeczywiście pomaga?

2

zrób w jquery aplikację używającą dużo formularzy powiązanych ze sobą w różny sposób (np dodawanie elementów, ich edycja, wybór innych elementów z listy elementów utworzonych na drugiej formatce)
wszystko niech się dzieje bez przeładowania strony

teraz zrób to samo w angularze i porównaj długość kodu i czas jaki nad tym spędziłeś

0

Chodzi o to, że jQuery to tylko biblioteka upraszczająca pracę z DOMem oraz zapytania AJAXowe. Natomiast Angular czy Ember to całe frameworki, które służą do tworzenia aplikacji internetowych jak np. GMail. Chodzi o to, że wszystkie widoki i interakcje są obsługiwane przez JSa. Tak naprawdę takowa aplikacja mogła by działać całkowicie odłączona od internetu (np. składowała by dane w LocalStorage lub IndexDB). W przypadku gdy jest jakiś backend to aplikacja komunikuje się asynchronicznie z serwerem, najczęściej przy pomocy JSONa. Serwer w tym przypadku działa tylko jako składnica danych. Co dzięki temu uzyskujemy? Bardzo lekkie środowisko. Praktycznie cała aplikacja może być w cache przeglądarki, a dane są przesyłane w bardzo lekkiej postaci, co przy ograniczonych łączach (jak łącza telefoniczne, czy kiedyś projektowałem aplikację dla firmy, której pracownicy znajdowali się na różnych krańcach Ziemi i często jedyne łącze internetowe to satelita, która ma prędkość podobną do modemu).

3

@winerfresh i dostajemy wtedy też te świetne strony których nie da się przeglądać w zakładkach :D W ogóle to twój opis to jest wypisz wymaluj zalety Flasha 10 lat temu.
Moim zdaniem wpychanie ajaxa wszędzie i takiego właśnie modyfikowania strony bez przeładowania to jest tragedia i poroniony pomysł. W pewnych sytuacjach ma to zastosowanie, jasne. Ale wpychanie tego wszędzie, bo taka moda, jest smutne...

1

dobrze zrobiona aplikacja podmienia url w pasku adresu i nie trzeba javascriptu - tj. javascript blokuje normalną akcje a z paska adresu jest odczytywana bieżąca strona i na starcie podmieniana
wpychanie ajaxu jest dobre - zapominanie o standardowym "href" jest smutne
zresztą zawsze można kliknąć środkowym na przycisk "odśwież" i mieć strone w dwóch zakładkach

0

@Shalom No oczywiście, że to się nie nadaje wszędzie. Np. fora czy blogi jako SPA to pomysł zryty jak Kopiczek, ale np. panele administracyjne takowego bloga to już czemu nie. Ogólnie ja mam taką zasadę:

  • treść ma być ogólnodostępna i indeksowana (czyt. będzie z tej treści korzystać więcej niż osób 1) - klasycznie
  • aplikacja nastawiona na pojedynczego użytkownika (w to wliczam również panele administracyjne) lub indeksowanie przez szukajki jest wręcz niepożądane (co często wiąże się z poprzednim) - SPA.
0
gokart napisał(a):

Jaki jest sens używania np. AngularJS albo EmberJS?
Co te frameworki dają?
Oglądałem parę tutoriali na temat właśnie tych frameworków i nie rozumiem idei ich używania/istnienia...

jQuery zrobione zostało po to, żeby uprościć pisanie w JS i żeby wyeliminować problem kompatybilności z różnymi przeglądarkami.

Ale np. tutaj gość tworzy coś w ember.js.
Jaki ma sens tworzenie appki w taki sposób?

Może ktoś poda jakiś praktyczny przykład do jakiego typu appki wykorzystanie takiego ember/angulara jest uzasadnione i rzeczywiście pomaga?

  • reużywalność kodu (dzielisz aplikację na wiele małych elementów, zamiast robicć wielkiego molocha)
  • automatyczny data-binding, zmieniasz cos w jednym miejscu, np. pole tekstowe formularza, automatycznie sie podmienia labelka gdzie indziej.
  • automatyczny routing, czyli masz takie coś jak mod_rewrite, tylko, że po stronie klienta. Dowolnie zdefiniowane przez ciebie ściezki url do widoków.(czyli mozesz wirtualne podstrony robić)
  • zorientowana obiektowo praca z ajaxem. Czyli zamiast wywoływac żądanie przez jQuery, definiuje sie konkretny zasób/obiekt (np. obiekt User albo BlogPost), definiuje do niego adres url, a potem wywoluje na nim metody (np. get, update, delete itp)
  • organizacja kodu. Każda rzecz ma swoje miejsce. Framework sprzyja a czasami wrecz wymusza pewne okreslone wzorce projektowe (co czasem bywa ograniczające, ale hej, na tym przeciez polegają frameworki. Te po stronie serwera przeciez dzialaja podobnie. W zasadzie gdybyś nie uzyl frameworka, i zaczął pisać cos większego na gołym JS (albo na gołym PHP czy gołym Pythonie) to i tak by się to skończyło, że byś zaczął robić własny framework, czyli własnego pseudo- Angulara(albo własne pseudo Django, własne pseudo Symfony itp) (zakładajac, że jesteś dobrym programistą, bo słaby programista prędzej skonczylby na kodzie spaghetti...). Czasem warto wyważać otwarte drzwi (np. jak się robi coś specyficznego) w innych wypadkach chyba jednak lepiej użyć frameworka...

pisz wymaluj zalety Flasha 10 lat

coś w tym jest. Zaczynając pisanie w Angularze miałem wrażenie, że to taki Adobe Flex. (framework flashowy), bo ogolnie podobne koncepcje, podobnie sie robilo tam pewne rzeczy.

0

Dzięki wszystkim za odpowiedzi, trochę mi się to rozjaśniło :)

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