التعليقات

إليك متى يجب عليك استخدام GET و POST لطلبات خادم Ajax

إليك متى يجب عليك استخدام GET و POST لطلبات خادم Ajax

عند استخدام Ajax (JavaScript غير متزامن و XML) للوصول إلى الخادم دون إعادة تحميل صفحة الويب ، لديك خياران حول كيفية تمرير المعلومات الخاصة بالطلب إلى الخادم: GET أو POST.

هذان هما نفس الخيارين اللذين لديك عند تمرير الطلبات إلى الخادم لتحميل صفحة جديدة ، ولكن مع وجود اختلافين. الأول هو أنك تطلب فقط جزءًا صغيرًا من المعلومات بدلاً من صفحة ويب كاملة. الاختلاف الثاني والأكثر ملاحظته هو أنه نظرًا لعدم ظهور طلب Ajax في شريط العناوين ، فلن يلاحظ زائروك فرقًا عند تقديم الطلب.

لن تكشف المكالمات التي يتم إجراؤها باستخدام GET عن الحقول وقيمها في أي مكان لا يؤدي استخدام POST إلى كشفها عند إجراء المكالمة من Ajax.

ما يتوجب عليك ان لا تفعل

لذلك ، كيف ينبغي لنا أن نختار أي من هذين البديلين يجب استخدامه؟

من الأخطاء التي قد يرتكبها بعض المبتدئين استخدام GET لمعظم مكالماتهم لمجرد أنه من الأسهل بالنسبة إلى الاثنين. والفرق الأكثر بروزًا بين مكالمات GET و POST في Ajax هو أن مكالمات GET لا يزال لها نفس القدر على كمية البيانات التي يمكن تمريرها عند طلب تحميل صفحة جديد.

الاختلاف الوحيد هو أنه نظرًا لأنك تعالج كمية صغيرة فقط من البيانات مع طلب Ajax (أو على الأقل هذا ما يجب عليك استخدامه) ، فمن الأرجح أنك لا تستطيع الوصول إلى هذا الحد الأقصى للطول من داخل Ajax كما تفعل مع تحميل صفحة ويب كاملة. يمكن للمبتدئين الحجز باستخدام طلبات POST للحالات القليلة التي يحتاجون فيها إلى تمرير المزيد من المعلومات التي تتيحها طريقة GET.

أفضل حل عندما يكون لديك الكثير من البيانات لتمرير مثل هذا هو إجراء مكالمات Ajax متعددة بتمرير بعض المعلومات في وقت واحد. إذا كنت ستقوم بتمرير كميات هائلة من البيانات في مكالمة Ajax الواحدة ، فمن الأفضل أن تقوم بمجرد إعادة تحميل الصفحة بأكملها لأنه لن يكون هناك فرق كبير في وقت المعالجة عندما يتعلق الأمر بكميات هائلة من البيانات.

لذلك ، إذا كانت كمية البيانات التي سيتم تمريرها ليست سببًا جيدًا للاختيار بين GET و POST ، فما الذي يجب أن نستخدمه في اتخاذ القرار؟

في الواقع ، تم إعداد هاتين الطريقتين لأغراض مختلفة تمامًا ، وتعود الاختلافات بين كيفية عملها جزئيًا إلى الاختلاف في الغرض من استخدامها. لا ينطبق هذا فقط على استخدام GET و POST من Ajax ، ولكن في أي مكان قد يتم استخدام هذه الطرق.

الغرض من الحصول على وظيفة

يتم استخدام GET كما يوحي الاسم: احصل على معلومات. الغرض منه هو أن تستخدم عندما تقرأ المعلومات. ستقوم المتصفحات بتخزين النتيجة مؤقتًا من طلب GET وإذا تم تقديم طلب GET نفسه مرة أخرى ، فستعرض النتيجة المخزنة مؤقتًا بدلاً من إعادة تشغيل الطلب بالكامل.

هذا ليس خطأ في معالجة المتصفح ؛ تم تصميمه بشكل متعمد للعمل بهذه الطريقة لجعل مكالمات GET أكثر كفاءة. استدعاء GET هو مجرد استرداد المعلومات. ليس المقصود تغيير أي معلومات على الخادم ، وهذا هو السبب في أن طلب البيانات مرة أخرى يجب أن يعرض النتائج نفسها.

طريقة ما بعد هو ل نشر أو تحديث المعلومات على الخادم. من المتوقع أن يغير هذا النوع من المكالمات البيانات ، وهذا هو السبب في أن النتائج التي يتم إرجاعها من مكالمتي POST متطابقتين قد تكون مختلفة تمامًا عن بعضها البعض. ستختلف القيم الأولية قبل استدعاء POST الثاني عن القيم قبل الأولى لأن المكالمة الأولية سيتم تحديث بعض هذه القيم على الأقل. لذلك ستحصل مكالمة POST دائمًا على استجابة من الخادم بدلاً من الاحتفاظ بنسخة مخبأة من الاستجابة السابقة.

كيفية اختيار الحصول على أو ما بعد

بدلاً من الاختيار بين GET و POST استنادًا إلى كمية البيانات التي تقوم بتمريرها في مكالمة Ajax ، يجب عليك أن تختار بناءً على ما تقوم به مكالمة Ajax بالفعل.

إذا كانت المكالمة لاسترداد البيانات من الخادم ، فاستخدم GET. إذا كان من المتوقع أن تتغير القيمة المراد استردادها بمرور الوقت كنتيجة لتحديث العمليات الأخرى ، فأضف معلمة الوقت الحالي إلى ما تقوم بتمريره في مكالمة GET حتى لا تستخدم المكالمات اللاحقة نسخة مخبأة مسبقًا من النتيجة هذا لم يعد صحيحا.

استخدم POST إذا كانت مكالمتك ستكتب أي بيانات على الإطلاق إلى الخادم.

في الواقع ، لا ينبغي عليك استخدام هذا المعيار فقط للاختيار بين GET و POST لمكالمات Ajax ولكن أيضًا عند تحديد أيهما ينبغي استخدامه لمعالجة النماذج على صفحة الويب الخاصة بك.