2012-10-27 9 views
7

Dołączyłem do projektu, który używa ramy wiosennej i wszystkie połączenia są wykonywane przez żądania ajax, a przekierowanie po sukcesie jest zdefiniowane w przeglądać się i przekazywać do funkcji ajax JS przez ukryte dane wejściowe (więc powrót ModelAndView na końcu każdej funkcji w kontrolerze nie ma żadnego efektu). Czuję, że to kasuje kod Jakoś tak? Wciąż myślę, że stało się tak, ponieważ chcieli uzyskać korzyści z posiadania spokojnej aplikacji z CRUD zmapowanym na post, get, put, delete, ale ostatecznie utracili możliwość przekierowania z samego kontrolera.Używanie ajax post, get, put, delete etc Vs html post a dostaniesz tylko w wiosna plusy i minusy

  • Chcę wiedzieć, czy był inny wzór, który to wszystko utrzyma.
  • Chciałbym także poznać plusy i minusy poprzedniego sposobu Vs za pomocą tylko GET i POST, które łatwo pozwalają na przekierowanie z kontrolera.

Odpowiedz

6

dobrze wzorca które zazwyczaj używają i polecam to:

  • użytkownik załaduje stronę - Kontroler GET pobiera nazywane i ładuje widok
  • Na stronie obciążenia - AJAX skrypt wywołuje POST kontrolera, aby pobrać dane z backendu (użytkownik widzi program ładujący)
  • Po sukcesie z żądania POST dane są renderowane.
  • Po błędzie zwracane - komunikat jest wyświetlany użytkownikowi jakichkolwiek problemów z backend (zapewnia większą kontrolę nad przekierowaniem)

Korzyści z takiego podejścia:

  1. zwiększoną elastyczność obsługi błędów
  2. Użytkownik nie musi czekać na załadowanie strony dla stron wymagających dużej ilości danych.
  3. Może być stosowany jako podejście hybrydowe, w którym można korzystać z pełnej obsługi sieci Web 2.0 lub używać bardziej tradycyjne podejście do niektórych operacji.
0

Przez wiele lat sieć znacznie się rozwinęła. Tradycyjne typy zapytań HTTP, takie jak PUT, DELETE, nie przydały się w większości przypadków podczas tworzenia stron internetowych, a zatem ich użycie było minimalne.

Zaleca się używanie tylko wzorców projektowych PUT GET & w swojej koncepcji tworzenia aplikacji internetowych. Wszędzie, gdzie wystarczy wysłać jeden lub dwa na wstępie dwa parametry wejściowe, aby uzyskać odpowiedź, powinieneś użyć GET, kiedy musisz wysłać więcej niż 2 parametry dla danych wejściowych do zasobu HTTP, np.URI można użyć POST

+0

Dlaczego narysujesz linię na 2 parametry, dlaczego nie 3, 10, 50 lub więcej? – Jamie

2

Ajax:

  • + nie ma podwójne wpisy w przeglądarce odśwież
  • + po stronie klienta realizacji
  • + mniej żądań do serwera
  • -dodatkowe kontroli bezpieczeństwa/konfigurację dotyczące ataków XSS

HTML:

  • + działa we wszystkich przeglądarkach
  • + działa, gdy JavaScript jest wyłączony
  • -Brak przydatności pod względem szybkości

ja po prostu spędzić trochę czasu ze sprężyną, więc nie mogę ocenić na wszystko. Możliwe, że sam rozwój wiosny powoduje, że czujesz się nieswojo. W Javie czujesz się w OOP. Ogólna koncepcja MVC jest mieszana z html AJAX itp. Należy pamiętać, że masz architekturę serwer/klient i chcesz, aby wszystkie komponenty były różne. To jest coś, co można bardzo dobrze zrobić dzięki Google Web Toolkit.

To, co przeczytałem, to odświeżenie przeglądarki. Gdzie jest korzyść AJAX po odświeżeniu? Nie znając aplikacji, ale wiedząc, że niektóre rzeczy nie mogą być tak łatwe w Javie (jeśli adaptujesz obcy kod), robisz dobrze i powinieneś przemyśleć swoje sekwencje programów.

Jedyna różnica w stosunku do HTMLa AJAX, o którym myślę, to połączenie z gniazdem, które można wykonać za pomocą komponentu ActiveX, Flasha lub Webtabetów HTML5. Ale to na ogół nie to, czego używasz do prostych formularzy.

BTW. łańcuch GET jest znany jako maksymalnie około 2000 znaków, ale jest nieco szybszy w wykonaniu, ponieważ nie wysyła się nagłówków takich jak POST.

I w mojej opozycji: jeśli chodzi o wydajność, to lepiej mieć mniej zgłoszeń i wypluć więcej html, niż próbować i zmusić się do tworzenia ajaxów wszędzie. Ponieważ i tak straciłeś przewagę SEO .....