Wanneer GET en POST gebruiken in Ajax

Wanneer u gebruikt Ajax (Asynchrone JavaScript en XML) om toegang te krijgen tot de server zonder de webpagina opnieuw te laden, hebt u twee mogelijkheden om de informatie voor het verzoek aan de server door te geven: GET of POST.

Dit zijn dezelfde twee opties die u hebt wanneer u aanvragen doorgeeft aan de server om een ​​nieuwe pagina te laden, maar met twee verschillen. De eerste is dat u slechts om een ​​klein stukje informatie vraagt ​​in plaats van een hele webpagina. Het tweede en meest opvallende verschil is dat, aangezien het Ajax-verzoek niet in de adresbalk verschijnt, uw bezoekers geen verschil zullen merken wanneer het verzoek wordt gedaan.

Oproepen gedaan met GET zullen de velden en hun waarden nergens blootleggen die met POST niet ook zichtbaar zijn wanneer de oproep wordt gedaan vanuit Ajax.

Wat u niet moet doen

Dus, hoe moeten we de keuze maken welke van deze twee alternatieven moet worden gebruikt?

Een fout die sommige beginners kunnen maken is om GET te gebruiken voor de meeste van hun oproepen, simpelweg omdat het eenvoudiger is om te coderen. Het meest opvallende verschil tussen GET- en POST-oproepen in Ajax is dat GET-oproepen nog steeds dezelfde limiet hebben voor de hoeveelheid gegevens die kunnen worden doorgegeven als bij het aanvragen van een nieuwe pagina-laadactie.

instagram viewer

Het enige verschil is dat omdat u slechts een kleine hoeveelheid gegevens verwerkt met een Ajax-verzoek (of althans dat is hoe u zou moeten gebruiken), is het veel minder waarschijnlijk dat u deze Ajax-limiet tegenkomt binnen Ajax zoals u zou doen met het laden van een compleet web bladzijde. Een beginner kan reserveren met behulp van POST-aanvragen voor de enkele gevallen waarin ze meer informatie moeten doorgeven die de GET-methode toestaat.

De beste oplossing als u zoveel gegevens wilt doorgeven, is om meerdere Ajax-oproepen tegelijkertijd een paar stukjes informatie door te geven. Als je in één Ajax-oproep enorme hoeveelheden gegevens wilt doorgeven, is het waarschijnlijk beter om gewoon opnieuw te laden de hele pagina omdat er geen significant verschil is in de verwerkingstijd wanneer grote hoeveelheden gegevens dat zijn betrokken.

Dus, als de hoeveelheid door te geven gegevens geen goede reden is om te kiezen tussen GET en POST, wat moeten we dan gebruiken om te beslissen?

Deze twee methoden zijn in feite opgezet voor totaal verschillende doeleinden, en de verschillen tussen hoe ze werken zijn deels te wijten aan het verschil in waarvoor ze zijn bedoeld. Dit geldt niet alleen voor het gebruik van GET en POST van Ajax, maar overal waar deze methoden kunnen worden toegepast.

Het doel van GET en POST

GET wordt gebruikt zoals de naam al aangeeft: tot krijgen informatie. het is bedoeld om te worden gebruikt wanneer u informatie leest. Browsers zullen het resultaat van een GET-aanvraag in de cache opslaan en als dezelfde GET-aanvraag opnieuw wordt gedaan, zullen ze het resultaat in de cache weergeven in plaats van de hele aanvraag opnieuw uit te voeren.

Dit is geen fout in de browserverwerking; het is opzettelijk ontworpen om op die manier te werken om GET-oproepen efficiënter te maken. Een GET-oproep haalt alleen de informatie op; het is niet bedoeld om informatie op de server te wijzigen. Daarom zou het opnieuw opvragen van de gegevens dezelfde resultaten moeten opleveren.

De POST-methode is voor posten of informatie op de server bijwerken. Verwacht wordt dat dit type oproep de gegevens zal veranderen. Daarom kunnen de resultaten van twee identieke POST-oproepen heel goed van elkaar verschillen. De beginwaarden vóór de tweede POST-oproep zullen verschillen van de waarden vóór de eerste omdat de eerste oproep ten minste enkele van die waarden heeft bijgewerkt. Een POST-oproep zal daarom altijd het antwoord van de server verkrijgen in plaats van een kopie in de cache van het vorige antwoord te bewaren.

Hoe GET of POST te kiezen

In plaats van te kiezen tussen GET en POST op basis van de hoeveelheid gegevens die u doorgeeft in uw Ajax-oproep, moet u kiezen op basis van wat de Ajax-oproep daadwerkelijk doet.

Gebruik GET als de oproep is om gegevens van de server op te halen. Als verwacht wordt dat de op te halen waarde in de loop van de tijd zal variëren als gevolg van andere processen die deze bijwerken, voeg dan een actuele tijdparameter toe aan wat u doorgeeft in uw GET-oproep zodat de latere oproepen geen eerdere kopie in de cache van het resultaat gebruiken die niet langer correct.

Gebruik POST als uw oproep gegevens naar de server gaat schrijven.

In feite moet u dit criterium niet alleen gebruiken om te kiezen tussen GET en POST voor uw Ajax-oproepen, maar ook om te selecteren welke moet worden gebruikt voor het verwerken van formulieren op uw webpagina.

instagram story viewer