Mikor kell használni a GET-et és a POST-ot az Ajaxban

Amikor használja Ajax (Asynchronous JavaScript and XML) a szerverhez való hozzáféréshez a weboldal újratöltése nélkül, kétféleképpen választhatja meg, hogyan továbbítsa a kéréshez szükséges információkat a szervernek: GET vagy POST.

Ez ugyanaz a két lehetőség, amely akkor áll, amikor egy új oldal betöltésére vonatkozó kéréseket továbbít a kiszolgálóra, de két különbséggel. Az első az, hogy egy teljes webhely helyett csak egy kis információt kér. A második és legszembetűnőbb különbség az, hogy mivel az Ajax kérés nem jelenik meg a címsorban, a látogatók nem észlelnek különbséget a kérelem benyújtásakor.

A GET használatával kezdeményezett hívások nem tárják ki a mezőket és azok értékeit sehol, amelyet a POST használata nem tesz ki, amikor az Ajaxból kezdeményezik a hívást.

Amit nem szabad csinálni

Tehát hogyan kell választanunk, hogy melyik alternatívát kell használni?

Az a hiba, amelyet egyes kezdők elkövethetnek, az, hogy a hívások nagy részében a GET-et használja, egyszerűen azért, mert a kettő közül a könnyebb kódolni. Az Ajaxban a legszembetűnőbb különbség a GET és a POST hívások között az, hogy a GET hívásokra továbbra is ugyanaz a korlátozás vonatkozik az átadható adatok mennyiségére, mint egy új oldal betöltése esetén.

instagram viewer

Az egyetlen különbség az, hogy azért, mert csak egy kevés adatot dolgoz fel Ajax kéréssel (vagy legalábbis így van.) kell használni), sokkal kevésbé valószínű, hogy az Ajaxon belül ezt a hosszkorlátozást túllépné, mint egy teljes web betöltésekor oldalt. A kezdõ a POST kérések felhasználásával fenntarthat néhány példányra, ahol további információk átadására van szükség, amelyeket a GET módszer megenged.

A legjobb megoldás, ha rengeteg adatot kell átadni, ha több Ajax hívást kezdeményez, egyszerre néhány darab információ továbbításával. Ha hatalmas mennyiségű adatot továbbít az egyetlen Ajax hívás során, akkor valószínűleg jobb lenne egyszerűen újratelepíteni mivel az óriási adatmennyiség esetén nincs jelentős különbség a feldolgozási időben magában foglal.

Tehát, ha a továbbítandó adatmennyiség nem megfelelő ok a GET és a POST közötti választáshoz, akkor mit kell választanunk?

Ezt a két módszert valójában egészen más célokra állították fel, és a működésük közötti különbségek részben annak következményei, hogy mi a céljuk. Ez nem csak az Ajax GET és POST használatára vonatkozik, hanem valójában bárhol, ahol ezeket a módszereket alkalmazni lehet.

A GET és a POST célja

A GET-et használják, mivel a neve azt sugallja: kap információ. célja, hogy információkat olvasson. A böngészők gyorsítótárban tárolják a GET-kérés eredményét, és ha ugyanazt a GET-kérelmet újra megteszik, akkor a gyorsítótárazott eredményt jelenítik meg, ahelyett, hogy a teljes kérést újra futtatnák.

Ez nem hibája a böngésző feldolgozásának; szándékosan úgy tervezték, hogy így működjön, hogy hatékonyabbá tegye a GET-hívásokat. A GET hívás csak az információk beolvasását jelenti; nem azt jelenti, hogy bármilyen információt megváltoztasson a kiszolgálón, ezért az adatok újbóli kérése esetén ugyanazokat az eredményeket adja vissza.

A POST módszer a postázás vagy frissíti az információkat a szerveren. Az ilyen típusú hívás várhatóan megváltoztatja az adatokat, ezért a két azonos POST hívásból kapott eredmények nagyon különbözhetnek egymástól. A második POST-hívás előtti kezdeti értékek különböznek az első előtti értékektől, mivel a kezdeti hívás legalább ezen értékek közül néhányat frissít. Ezért a POST hívás mindig a szervertől fogja kapni a választ, ahelyett, hogy az előző válasz tárolt változatát tárolja.

Hogyan válasszuk ki a GET vagy a POST alkalmazást

Ahelyett, hogy az Ajax-hívás során átadott adatmennyiség alapján választana a GET és a POST között, akkor azt kell választania, hogy az Ajax-hívás valójában hogyan történik.

Ha a hívás adatok lekérésére szolgál a szerverről, akkor használja a GET-t. Ha a visszakeresendő érték várhatóan idővel változik más frissítő folyamatok eredményeként, akkor adjon hozzá egy aktuális idő paramétert a amit átad a GET hívás során, hogy a későbbi hívások ne használják az eredmény korábbi tárolt példányát, amely már nem helyes.

Használja a POST-t, ha a hívása során bármilyen adatot fog írni a szerverre.

Valójában nem csak ezt a kritériumot kell használnia az Ajax hívások GET és POST közötti választására, hanem annak kiválasztására is, amelyet a weblap űrlapjainak feldolgozására kell használni.