Millal Ajaxis GET-i ja POST-i kasutada?

Kui kasutate Ajax (Asünkroonne JavaScript ja XML), et pääseda serverile juurde ilma veebilehte uuesti laadimata, on teil kaks võimalust, kuidas päringu teavet serverile edastada: GET või POST.

Need on samad kaks võimalust, mis teil serverile uue lehe laadimiseks päringute saatmisel, kuid kahel erinevusel. Esimene on see, et taotlete kogu veebisaidi asemel ainult väikest teavet. Teine ja kõige märgatavam erinevus on see, et kuna Ajaxi taotlust ei ilmu aadressiribale, ei märka teie külastajad taotluse esitamisel erinevust.

GET-i abil tehtud kõned ei paljasta väljade ja nende väärtusi kusagil, mida POST-i kasutamine ka ei ava, kui kõne tehakse Ajaxist.

Mida sa ei peaks tegema

Niisiis, kuidas peaksime tegema valiku, millist neist kahest alternatiivist tuleks kasutada?

Viga, mille mõned algajad võivad teha, on kasutada GET-i enamiku oma kõnede jaoks lihtsalt seetõttu, et neid on lihtsam kodeerida. Ajaxis on GET-kõnede ja POST-kõnede kõige märgatavam erinevus see, et GET-kõnede puhul on edastatava andmemahu osas endiselt sama piirang kui uue lehe laadimisel.

instagram viewer

Ainus erinevus on see, et kuna töötlete ainult väikest hulka andmeid Ajaxi päringuga (või vähemalt nii olete teie) peaks seda kasutama), on teil Ajaxi sees selline pikkusepiirang palju väiksem kui täieliku veebi laadimisel lehel. Algaja võib POST-päringuid kasutades reserveerida mõne üksiku juhtumi jaoks, kus nad peavad edastama rohkem teavet, mida GET-meetod võimaldab.

Parim lahendus, kui teil on niivõrd palju edastatavaid andmeid, on teha mitu Ajaxi kõnet, edastades korraga paar teavet. Kui soovite ühe Ajaxi kõne kaudu edastada tohutul hulgal andmeid, oleks teil parem parem lihtsalt uuesti laadida kogu leht, kuna töötlemise aeg ei muutu märkimisväärselt, kui andmeid on tohutult kaasatud.

Niisiis, kui edastatav andmemaht ei ole GET ja POST vahel valimiseks piisav põhjus, siis mida peaksime otsustama?

Need kaks meetodit loodi tegelikult täiesti erinevatel eesmärkidel ja erinevused nende tööpõhimõttes tulenevad osaliselt erinevustest selles, milleks neid kavatsetakse kasutada. See ei kehti mitte ainult Ajaxi GET-i ja POST-i kasutamisel, vaid tõesti kõikjal, kus neid meetodeid võib kasutada.

GET-i ja POST-i eesmärk

GET-i kasutatakse, nagu nimest järeldub: kuni saada teave. see on ette nähtud kasutamiseks teabe lugemisel. Brauserid vahemällu salvestatakse GET-i päringu tulemus ja kui sama GET-päring tehakse uuesti, kuvavad nad vahemällu salvestatud tulemuse, mitte kogu päringu uuesti käitamise.

See ei ole viga brauseri töötlemisel; see on mõeldud teadlikult selliseks töötamiseks, et muuta GET-kõned tõhusamaks. GET-kõne on lihtsalt teabe hankimine; see pole mõeldud serveris oleva teabe muutmiseks, mistõttu peaks andmete uuesti taotlemine tagama samad tulemused.

POST-meetod on postitamine või serveris teabe värskendamine. Eeldatakse, et seda tüüpi kõne muudab andmeid, mistõttu võivad kahe identse POST-kõne tulemusel saadud tulemused olla täiesti erinevad. Algväärtused enne teist POST-kõnet erinevad väärtustest enne esimest, kuna algkõne on vähemalt mõnda neist väärtustest värskendanud. Seetõttu saab POST-kõne alati vastuse serverilt, mitte ei hoia varasema vastuse puhverdatud koopiat.

Kuidas valida GET või POST

Selle asemel, et valida Ajaxi kõnes edastatavate andmete hulga põhjal GET ja POST, peaksite valima selle, mida Ajaxi kõne tegelikult teeb.

Kui kõne on serverist andmete hankimine, siis kasutage GET. Kui allalaaditav väärtus eeldatavasti muutub aja jooksul muude seda värskendavate protsesside tagajärjel, lisage praeguse aja parameeter mida te oma GET-kõnes ületate, et hilisemad kõned ei kasutaks tulemuse varasemat vahemällu salvestatud koopiat, mida enam pole õige.

Kasutage POSTi, kui teie kõne plaanib serverisse mingeid andmeid kirjutada.

Tegelikult ei peaks te seda kriteeriumi kasutama mitte ainult Ajaxi kõnede GET ja POST vahel valimiseks, vaid ka valimisel, mida tuleks kasutada oma veebilehe vormide töötlemiseks.