Wann werden GET und POST in Ajax verwendet?

Wenn Sie verwenden Ajax (Asynchrones JavaScript und XML) Um auf den Server zuzugreifen, ohne die Webseite neu zu laden, haben Sie zwei Möglichkeiten, wie die Informationen für die Anforderung an den Server übergeben werden sollen: GET oder POST.

Dies sind dieselben zwei Optionen, die Sie haben, wenn Sie Anforderungen zum Laden einer neuen Seite an den Server übergeben, jedoch mit zwei Unterschieden. Das erste ist, dass Sie nur eine kleine Information anstelle einer gesamten Webseite anfordern. Der zweite und auffälligste Unterschied besteht darin, dass Ihre Besucher keinen Unterschied bemerken, wenn die Anfrage gestellt wird, da die Ajax-Anfrage nicht in der Adressleiste angezeigt wird.

Anrufe, die mit GET getätigt werden, machen die Felder und ihre Werte nirgendwo sichtbar, wo POST nicht auch verfügbar macht, wenn der Anruf von Ajax aus getätigt wird.

Was Sie nicht tun sollten

Wie sollten wir also entscheiden, welche dieser beiden Alternativen verwendet werden soll?

Ein Fehler, den einige Anfänger machen könnten, besteht darin, GET für die meisten ihrer Anrufe zu verwenden, einfach weil es einfacher ist, Code zu erstellen. Der auffälligste Unterschied zwischen GET- und POST-Aufrufen in Ajax besteht darin, dass GET-Aufrufe immer noch das gleiche Limit für die Datenmenge haben, die übergeben werden kann, wie beim Anfordern eines neuen Seitenladens.

instagram viewer

Der einzige Unterschied besteht darin, dass Sie nur eine kleine Datenmenge mit einer Ajax-Anfrage verarbeiten (oder zumindest so sollte es verwendet werden), ist es weitaus unwahrscheinlicher, dass Sie innerhalb von Ajax auf diese Längenbeschränkung stoßen, wie dies beim Laden eines vollständigen Webs der Fall wäre Seite. Ein Anfänger kann die Verwendung von POST-Anforderungen für die wenigen Fälle reservieren, in denen er mehr Informationen übergeben muss, als die GET-Methode zulässt.

Die beste Lösung, wenn Sie viele Daten auf diese Weise übergeben müssen, besteht darin, mehrere Ajax-Anrufe zu tätigen, bei denen jeweils einige Informationen gleichzeitig übergeben werden. Wenn Sie große Datenmengen in einem Ajax-Aufruf übergeben möchten, ist es wahrscheinlich besser, wenn Sie sie einfach neu laden die gesamte Seite, da es keinen großen Unterschied in der Verarbeitungszeit gibt, wenn große Datenmengen vorhanden sind beteiligt.

Wenn die zu übergebende Datenmenge kein guter Grund für die Wahl zwischen GET und POST ist, was sollten wir dann zur Entscheidung verwenden?

Diese beiden Methoden wurden in der Tat für völlig unterschiedliche Zwecke entwickelt, und die Unterschiede zwischen ihrer Funktionsweise sind teilweise auf die unterschiedlichen Verwendungszwecke zurückzuführen. Dies gilt nicht nur für die Verwendung von GET und POST von Ajax, sondern überall dort, wo diese Methoden eingesetzt werden können.

Der Zweck von GET und POST

GET wird verwendet, wie der Name schon sagt: to bekommen Information. Es soll verwendet werden, wenn Sie Informationen lesen. Browser zwischenspeichern das Ergebnis einer GET-Anforderung. Wenn dieselbe GET-Anforderung erneut gestellt wird, wird das zwischengespeicherte Ergebnis angezeigt, anstatt die gesamte Anforderung erneut auszuführen.

Dies ist kein Fehler in der Browserverarbeitung. Es wurde bewusst so konzipiert, dass GET-Anrufe effizienter werden. Ein GET-Aufruf ruft nur die Informationen ab. Es ist nicht dazu gedacht, Informationen auf dem Server zu ändern. Aus diesem Grund sollten beim erneuten Anfordern der Daten dieselben Ergebnisse zurückgegeben werden.

Die POST-Methode ist für Buchung oder Aktualisieren von Informationen auf dem Server. Es wird erwartet, dass diese Art von Anruf die Daten ändert, weshalb die Ergebnisse von zwei identischen POST-Aufrufen durchaus völlig unterschiedlich sein können. Die Anfangswerte vor dem zweiten POST-Aufruf unterscheiden sich von den Werten vor dem ersten, da beim ersten Aufruf mindestens einige dieser Werte aktualisiert wurden. Ein POST-Aufruf erhält daher immer die Antwort vom Server, anstatt eine zwischengespeicherte Kopie der vorherigen Antwort zu behalten.

So wählen Sie GET oder POST

Anstatt zwischen GET und POST basierend auf der Datenmenge zu wählen, die Sie in Ihrem Ajax-Anruf übergeben, sollten Sie basierend auf der tatsächlichen Ausführung des Ajax-Anrufs wählen.

Wenn der Aufruf Daten vom Server abrufen soll, verwenden Sie GET. Wenn erwartet wird, dass der abzurufende Wert im Laufe der Zeit aufgrund anderer Prozesse, die ihn aktualisieren, variiert, fügen Sie einen aktuellen Zeitparameter hinzu Was Sie in Ihrem GET-Aufruf übergeben, damit die späteren Aufrufe keine frühere zwischengespeicherte Kopie des Ergebnisses verwenden, die nicht mehr vorhanden ist richtig.

Verwenden Sie POST, wenn Ihr Anruf überhaupt Daten auf den Server schreiben soll.

Tatsächlich sollten Sie dieses Kriterium nicht nur für die Auswahl zwischen GET und POST für Ihre Ajax-Aufrufe verwenden, sondern auch für die Auswahl, welches für die Verarbeitung von Formularen auf Ihrer Webseite verwendet werden soll.