2012-10-27 6 views
7

Ich trat ein Projekt, das Spring-Framework verwendet und alle Anrufe werden von Ajax-Anfragen gemacht und die Umleitung nach Erfolg ist in der definiert sich selbst anzeigen und über eine versteckte Eingabe an die Ajax JS-Funktion übergeben (so hat die Rückgabe ModelAndView am Ende jeder Funktion im Controller keine Wirkung). Ich fühle, dass es den Code irgendwie vermasselt Habe ich Recht? Trotzdem denke ich, dass dies getan wurde, weil sie die Vorteile einer erholsamen App mit CRUD nutzen wollten, die auf Post, Get, Put, Delete gemappt wurde, aber letztendlich die Fähigkeit verloren hat, vom Controller selbst umzuleiten.Mit Ajax Post, Get, Put, Löschen usw. Vs HTML-Post und nur im Frühjahr Pros und Contras

  • Ich möchte wissen, ob es andere Muster gab, um das alles zu halten.
  • Ich möchte auch die Vor- und Nachteile der vorherigen Weg Vs mit nur GET und POST, die leicht Umleitung von der Steuerung ermöglicht wissen.

Antwort

6

Nun das Muster, das ich in der Regel verwenden und empfehlen ist die folgende:

  • Benutzer lädt eine Seite - Controller-GET aufgerufen wird, und lädt die Ansicht
  • Auf Seite Last - AJAX-Skript die POST ruft des Controllers zum Abrufen der Daten aus dem Backend (Benutzer sieht einen Loader)
  • Bei erfolgreicher POST-Anforderung werden die Daten gerendert.
  • auf Fehler zurückgegeben - Nachricht an den Benutzer von allen möglichen Ausgaben angezeigt aus dem Backend (mehr Kontrolle über die Umleitung bietet)

Vorteile bei diesem Ansatz:

  1. Erhöhte Flexibilität Fehler
  2. Handling
  3. Benutzer muss nicht warten, bis Seite für datenintensive Seiten geladen wird
  4. Konnte als ein hybrider Ansatz verwendet werden, in dem Sie entweder das volle Web 2.0 fühlen oder verwenden können ein traditionellerer Ansatz für bestimmte Operationen.
0

Web hat sich im Laufe der Jahre viel gereift. Die herkömmlichen HTTP-Anforderungstypen wie PUT, DELETE waren für die Mehrheit der Umstände in der Webentwicklung nicht nützlich und daher war ihre Verwendung minimal.

Es ist ratsam, nur GET & PUT Entwurfsmuster in Ihrem Web Application Development-Ansatz zu verwenden. Wenn Sie nur einen oder fast zwei Eingabeparameter senden müssen, um eine Antwort zu erhalten, sollten Sie GET verwenden, wenn Sie mehr als 2 Parameter für die Eingabe in eine HTTP-Ressource senden müssen.URI, dann können Sie POST

+0

Warum zeichnen Sie die Linie bei 2 Parametern, warum nicht 3, 10, 50 oder mehr? – Jamie

2

Ajax verwenden:

  • + keine Doppel Beiträge über Browser
  • + Client-Seite Ausführung
  • + weniger Anfragen an den Server
  • -additional Sicherheitskontrollen/Konfiguration aktualisieren XSS in Bezug auf Angriffe

HTML:

  • + funktioniert in allen Browsern
  • + funktioniert, wenn Sie Javascript
  • -Mangel der Brauchbarkeit in Bezug auf
  • Geschwindigkeit deaktiviert

ich wenig Zeit mit Frühling nur verbringen, so kann ich nicht auf alles beurteilen. Es kann sein, dass das Entwicklungsmuster des Frühlings Sie dazu bringt, sich unwohl zu fühlen. In Java sind Sie es gewohnt, sich in OOP zu fühlen. Das allgemeine Konzept von MVC wird mit HTML AJAX etc. gemischt. Denken Sie daran, dass Sie eine Server/Client-Architektur haben und Sie alle Komponenten getrennt haben möchten. Das ist etwas, das mit dem Google Web Toolkit sehr gut erledigt werden kann.

Also was ich lese ist, dass Sie einen Browser aktualisieren. Wo liegt der Vorteil von AJAX, wenn Sie eine Aktualisierung durchführen? Wenn Sie Ihre Anwendung nicht kennen, aber wissen, dass manche Dinge in Java nicht so einfach zu bewerkstelligen sind (wenn Sie fremden Code anpassen), tun Sie es richtig und sollten über Ihre Programmabläufe nachdenken.

Der einzige andere Weg neben dem AJAX-HTML, den ich mir vorstellen kann, ist eine Socket-Verbindung, die entweder mit einer ActiveX-Komponente, Flash oder den HTML5-Websockets durchgeführt werden kann. Aber das ist normalerweise nicht das, was Sie für einfache Formulare verwenden.

BTW. Es ist bekannt, dass der GET-String maximal etwa 2000 Zeichen lang ist, aber etwas schneller in der Ausführung, weil Sie keine Header wie POST senden.

Und in meiner Meinung: In Bezug auf die Leistung, ist es besser, weniger Anfragen zu haben und mehr HTML ausspucken als versuchen und zwingen Sie sich, nur um Ajax überall zu machen. Da Sie sowieso Ihren SEO-Vorteil verloren haben ...

Verwandte Themen