अजाक्स में GET और POST का उपयोग कब करें

जब आप उपयोग करते हैं अजाक्स (अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल) वेब पेज को फिर से लोड किए बिना सर्वर तक पहुंचने के लिए, आपके पास सर्वर के अनुरोध के लिए जानकारी पास करने के लिए दो विकल्प हैं: GET या POST।

ये वही दो विकल्प हैं जो आपके पास एक नया पृष्ठ लोड करने के लिए सर्वर से अनुरोध करते समय हैं, लेकिन दो अंतरों के साथ। पहला यह है कि आप संपूर्ण वेब पेज के बजाय केवल एक छोटे से जानकारी का अनुरोध कर रहे हैं। दूसरा और सबसे अधिक ध्यान देने योग्य अंतर यह है कि चूंकि अजाक्स अनुरोध पता बार में दिखाई नहीं देता है, इसलिए आपके आगंतुकों को अनुरोध किए जाने पर कोई अंतर दिखाई नहीं देगा।

जीईटी का उपयोग करने वाले कॉल कहीं भी खेतों और उनके मूल्यों को उजागर नहीं करेंगे कि अजाक्स को कॉल करने पर POST का उपयोग करना भी उजागर नहीं करता है।

आपको क्या करना चाहिए क्या नहीं

तो, हमें यह कैसे चुनाव करना चाहिए कि इन दोनों विकल्पों में से किसका उपयोग करना चाहिए?

एक गलती जो कुछ शुरुआती लोग कर सकते हैं, वह यह है कि जीईटी का उपयोग ज्यादातर कॉल के लिए किया जाता है, क्योंकि यह दो से कोड के लिए आसान है। अजाक्स में GET और POST कॉल के बीच सबसे अधिक ध्यान देने योग्य अंतर यह है कि GET कॉल में अभी भी डेटा की मात्रा पर एक ही सीमा है जिसे नए पृष्ठ लोड करने का अनुरोध करते समय पारित किया जा सकता है।

instagram viewer

अंतर केवल इतना है कि क्योंकि आप केवल अजाक्स अनुरोध (या कम से कम यही है कि आप कैसे हैं) के साथ कम मात्रा में डेटा संसाधित कर रहे हैं इसका उपयोग करना चाहिए), आपको अजाक्स के भीतर से इस लंबाई सीमा में चलने की संभावना कम है, जैसे आप एक पूर्ण वेब लोड करने के साथ करेंगे पृष्ठ। एक शुरुआत कुछ उदाहरणों के लिए POST अनुरोधों का उपयोग करके आरक्षित कर सकती है जहां उन्हें अधिक जानकारी पास करने की आवश्यकता होती है जो कि GET विधि की अनुमति देती है।

सबसे अच्छा समाधान जब आपके पास पास करने के लिए बहुत सारे डेटा होते हैं, तो यह है कि एक बार में कई अजाक्स कॉल को सूचना के कुछ टुकड़ों को पार करना है। यदि आप एक अजाक्स कॉल में सभी को भारी मात्रा में डेटा पास करने जा रहे हैं, तो आप बस पुनः लोड करना बेहतर होगा संपूर्ण पृष्ठ, चूंकि बड़ी मात्रा में डेटा होने पर प्रसंस्करण समय में कोई महत्वपूर्ण अंतर नहीं होगा शामिल किया गया।

इसलिए, यदि पास किया जाने वाला डेटा GET और POST के बीच चयन करने का एक अच्छा कारण नहीं है, तो हमें निर्णय लेने के लिए क्या उपयोग करना चाहिए?

ये दो विधियां वास्तव में पूरी तरह से अलग-अलग उद्देश्यों के लिए स्थापित की गई थीं, और वे किस तरह से काम करती हैं, इस अंतर के कारण जो वे उपयोग किए जाने का इरादा रखते हैं, उस अंतर के कारण हैं। यह न केवल अजाक्स से GET और POST का उपयोग करने पर लागू होता है, बल्कि वास्तव में कहीं भी इन विधियों को नियोजित किया जा सकता है।

GET और POST का उद्देश्य

GET का उपयोग नाम के रूप में किया जाता है: से प्राप्त जानकारी। जब आप जानकारी पढ़ रहे हों तो इसका उपयोग करने का इरादा है। ब्राउज़र्स परिणाम को GET अनुरोध से कैश कर देंगे और यदि वही GET अनुरोध फिर से किया जाता है, तो वे पूरे अनुरोध को फिर से चलाने के बजाय कैश्ड परिणाम प्रदर्शित करेंगे।

यह ब्राउज़र प्रसंस्करण में एक दोष नहीं है; यह जानबूझकर उस तरह से काम करने के लिए डिज़ाइन किया गया है ताकि GET कॉल को अधिक कुशल बनाया जा सके। एक GET कॉल केवल जानकारी को पुनर्प्राप्त कर रहा है; यह सर्वर पर किसी भी जानकारी को बदलने के लिए नहीं है, यही वजह है कि डेटा को फिर से अनुरोध करते हुए उसी परिणाम को वापस करना चाहिए।

POST विधि के लिए है प्रविष्टि या सर्वर पर अद्यतन जानकारी। इस प्रकार की कॉल से डेटा को बदलने की उम्मीद की जाती है, यही वजह है कि दो समान POST कॉल्स से लौटे परिणाम एक दूसरे से बहुत अलग हो सकते हैं। दूसरी POST कॉल से पहले के शुरुआती मूल्य पहले के मूल्यों से अलग होंगे क्योंकि शुरुआती कॉल में कम से कम कुछ मान अपडेट किए गए होंगे। इसलिए POST कॉल हमेशा पूर्व प्रतिक्रिया की कैश्ड कॉपी रखने के बजाय सर्वर से प्रतिक्रिया प्राप्त करेगा।

GET या POST कैसे चुनें

अपने अजाक्स कॉल में जो डेटा आप पास कर रहे हैं, उसके आधार पर GET और POST में से चुनने के बजाय, आपको यह चुनना चाहिए कि Ajax कॉल वास्तव में क्या कर रहा है।

यदि कॉल को सर्वर से डेटा पुनर्प्राप्त करना है, तो GET का उपयोग करें। यदि पुनर्प्राप्त किए जाने वाले मूल्य को समय-समय पर इसे अपडेट करने वाली अन्य प्रक्रियाओं के परिणामस्वरूप अलग-अलग होने की उम्मीद है, तो वर्तमान समय पैरामीटर जोड़ें आप अपने GET कॉल में क्या पास कर रहे हैं ताकि बाद में आने वाली कॉल परिणाम की पुरानी कैश्ड कॉपी का उपयोग न करें सही बात।

यदि आपका कॉल सर्वर पर कोई भी डेटा लिखने जा रहा है तो POST का उपयोग करें।

वास्तव में, आपको न केवल अपने अजाक्स कॉल के लिए GET और POST के बीच चयन करने के लिए इस मानदंड का उपयोग करना चाहिए, बल्कि यह भी चयन करना चाहिए कि आपके वेब पेज पर प्रसंस्करण रूपों के लिए किसका उपयोग किया जाना चाहिए।

instagram story viewer