Кога да използвате GET и POST в Ajax

click fraud protection

Когато използвате Аякс (Асинхронен JavaScript и XML) за достъп до сървъра, без да презареждате уеб страницата, имате два варианта как да предадете информацията за заявката на сървъра: GET или POST.

Това са същите две опции, които имате при изпращане на заявки към сървъра за зареждане на нова страница, но с две разлики. Първият е, че изисквате само малка информация, вместо цяла уеб страница. Втората и най-забележима разлика е, че тъй като заявката на Ajax не се появява в адресната лента, посетителите ви няма да забележат разлика, когато е направена заявката.

Обажданията, направени чрез GET, няма да излагат полетата и техните стойности никъде, че използването на POST също не се излага, когато повикването е направено от Ajax.

Какво не трябва да правите

И така, как да направим избора коя от тези две алтернативи да се използва?

Грешка, която някои начинаещи могат да направят, е да използват GET за повечето си разговори, просто защото е по-лесно кодирането на двамата. Най-забележимата разлика между GET и POST обажданията в Ajax е, че GET обажданията все още имат същото ограничение за количеството данни, което може да бъде предадено, както при заявяване на зареждане на нова страница.

instagram viewer

Единствената разлика е, че тъй като обработвате само малко количество данни с искане на Ajax (или поне така сте трябва да го използвате), има много по-малка вероятност да се сблъскате с тази граница на дължината от Ajax, както бихте искали с зареждане на цяла мрежа страница. Начинаещ може да резервира, използвайки POST заявки за няколкото случая, в които трябва да предадат повече информация, която позволява GET методът.

Най-доброто решение, когато имате много данни, за да преминете по този начин, е да правите множество повиквания на Ajax, предаващи няколко части информация наведнъж. Ако ще предавате огромни количества данни в едно обаждане на Ajax, вероятно ще е по-добре просто да презаредите цялата страница, тъй като няма да има значителна разлика във времето за обработка, когато са огромни количества данни участващи.

Така че, ако количеството данни, което трябва да бъде предадено, не е добра причина за избор между GET и POST, тогава какво трябва да използваме, за да вземем решение?

Тези два метода всъщност са създадени за съвсем различни цели и разликите между начина на работа отчасти се дължат на разликата в това, за което са предназначени. Това се отнася не само за използването на GET и POST от Ajax, но наистина навсякъде, където тези методи могат да бъдат използвани.

Целта на GET и POST

GET се използва, както името подсказва: до GET информация. предназначен е да се използва, когато четете информация. Браузърите ще кешират резултата от GET заявка и ако същата GET заявка бъде направена отново, те ще покажат кеширания резултат, вместо да стартират отново цялата заявка.

Това не е недостатък при обработката на браузъра; той е умишлено създаден да работи по този начин, за да направи GET повикванията по-ефективни. GET обаждането е само извличане на информация; не е предназначено да променяте каквато и да е информация на сървъра, поради което искането на данните отново трябва да върне същите резултати.

Методът POST е за публикуване или актуализиране на информация на сървъра. Очаква се този тип повикване да промени данните, поради което резултатите, върнати от две идентични POST обаждания, могат да бъдат напълно различни един от друг. Първоначалните стойности преди втория POST разговор ще бъдат различни от стойностите преди първото, тъй като първоначалното повикване ще е актуализирало поне някои от тези стойности. Следователно POST обаждането винаги ще получи отговора от сървъра, вместо да запази кеширано копие на предишния отговор.

Как да изберете GET или POST

Вместо да избирате между GET и POST въз основа на количеството данни, което предавате във вашето повикване Ajax, трябва да изберете въз основа на това, което Ajax обаждането всъщност прави.

Ако повикването е за изтегляне на данни от сървъра, използвайте GET. Ако се очаква извличаната стойност да се променя с течение на времето в резултат на други процеси, актуализиращи я, добавете текущ параметър за време към какво предавате в GET обаждането си, така че по-късните повиквания да не използват по-рано кеширано копие на резултата, който вече не е вярна.

Използвайте POST, ако вашето повикване въобще ще запише данни на сървъра.

Всъщност, вие трябва да използвате не само този критерий за избор между GET и POST за вашите повиквания от Ajax, но и за избора, който трябва да се използва за обработка на формуляри на вашата уеб страница.

instagram story viewer