Hvornår skal GET og POST bruges i Ajax

click fraud protection

Når du bruger ajax (Asynkron JavaScript og XML) for at få adgang til serveren uden at indlæse websiden igen. Du har to valg om, hvordan du videregiver oplysningerne til anmodningen til serveren: GET eller POST.

Dette er de samme to indstillinger, som du har, når du videresender anmodninger til serveren om at indlæse en ny side, men med to forskelle. Den første er, at du kun anmoder om et lille stykke information i stedet for en hel webside. Den anden og mest bemærkelsesværdige forskel er, at da Ajax-anmodningen ikke vises i adresselinjen, vil dine besøgende ikke bemærke en forskel, når anmodningen indgives.

Opkald, der foretages ved hjælp af GET, vil ikke eksponere felterne og deres værdier overalt, som ved hjælp af POST ikke også udsættes, når opkaldet foretages fra Ajax.

Hvad du ikke skal gøre

Så hvordan skal vi vælge, hvilke af disse to alternativer der skal bruges?

En fejl, som nogle begyndere muligvis begår, er at bruge GET til de fleste af deres opkald, blot fordi det er lettere for de to at kode. Den mest bemærkelsesværdige forskel mellem GET- og POST-opkald i Ajax er, at GET-opkald stadig har den samme grænse for mængden af ​​data, der kan videregives som ved anmodning om en ny sideindlæsning.

instagram viewer

Den eneste forskel er, at fordi du kun behandler en lille mængde data med en Ajax-anmodning (eller i det mindste det er sådan, du er) skal bruge det), er det langt mindre sandsynligt, at du løber ind i denne længdegrænse inden for Ajax, som du ville med indlæsning af et komplet web side. En nybegynder kan reservere ved hjælp af POST-anmodninger i de få tilfælde, hvor de har brug for at videregive flere oplysninger, som GET-metoden tillader.

Den bedste løsning, når du har masser af data som sådan, er at foretage flere Ajax-opkald, der videregiver et par oplysninger ad gangen. Hvis du vil videregive enorme mængder data alt sammen i det ene Ajax-opkald, ville du sandsynligvis have det bedre med blot at genindlæse hele siden, da der ikke vil være nogen signifikant forskel i behandlingstiden, når der er enorme datamængder involveret.

Så hvis den mængde data, der skal videregives, ikke er en god grund til at vælge mellem GET og POST, hvad skal vi så bruge til at beslutte?

Disse to metoder blev faktisk konfigureret til helt forskellige formål, og forskellene mellem hvordan de fungerer er delvis på grund af forskellen i, hvad de er beregnet til at blive brugt til. Dette gælder ikke kun ved brug af GET og POST fra Ajax, men virkelig overalt kan disse metoder anvendes.

Formålet med GET og POST

GET bruges som navnet antyder: til Information. det er beregnet til at blive brugt, når du læser information. Browsere cache resultatet fra en GET-anmodning, og hvis den samme GET-anmodning fremsættes igen, vil de vise det cache-resultat i stedet for at køre hele anmodningen igen.

Dette er ikke en fejl i browserbehandlingen; det er bevidst designet til at arbejde på den måde for at gøre GET-opkald mere effektive. Et GET-opkald henter bare informationen; det er ikke beregnet til at ændre nogen information på serveren, og det er grunden til at anmode om dataene igen skal returnere de samme resultater.

POST-metoden er til udstationering eller opdatering af oplysninger på serveren. Denne type opkald forventes at ændre dataene, hvorfor resultaterne, der returneres fra to identiske POST-opkald, meget vel kan være helt forskellige fra hinanden. De indledende værdier før det andet POST-opkald vil være forskellige fra værdierne før det første, fordi det indledende opkald i det mindste har opdateret nogle af disse værdier. Et POST-opkald får derfor altid svaret fra serveren i stedet for at gemme en cache-kopi af det forudgående svar.

Sådan vælges GET eller POST

I stedet for at vælge mellem GET og POST baseret på den mængde data, du videregiver i dit Ajax-opkald, skal du vælge ud fra, hvad Ajax-opkaldet faktisk gør.

Hvis opkaldet skal hente data fra serveren, skal du bruge GET. Hvis den værdi, der skal hentes, forventes at variere over tid som et resultat af andre processer, der opdaterer den, skal du tilføje en aktuel tidsparameter til hvad du videresender i dit GET-opkald, så de senere opkald ikke bruger en tidligere cachelagret kopi af resultatet, der ikke længere er korrekt.

Brug POST, hvis dit opkald overhovedet vil skrive data til serveren.

Faktisk skal du ikke kun bruge dette kriterium til at vælge mellem GET og POST til dine Ajax-opkald, men også til, når du vælger, hvilket skal bruges til behandling af formularer på din webside.

instagram story viewer