एक छिपा AJAX अनुरोध क्या है?
मैंने उपयोगकर्ता के कार्य को तुरंत करने के लिए डिज़ाइन किए गए AJAX अनुरोधों के उपयोग में वृद्धि देखी है। मैं इस प्रकार के AJAX अनुरोध को गैर-अवरोधक के रूप में संदर्भित करूँगा। यह AJAX अनुरोध है जो उपयोगकर्ता को पता चले बिना हो रहा है, यह पृष्ठभूमि में किया गया है और यह ऑपरेशन चुप है ( AJAX कॉल के सफल समापन को इंगित करने के लिए कोई क्रिया नहीं है )। लक्ष्य ऑपरेशन को प्रकट करना है कि यह तुरंत हुआ है जब यह वास्तव में समाप्त नहीं हुआ है।
यहां गैर-अवरुद्ध AJAX अनुरोध के उदाहरण हैं;
- उपयोगकर्ता क्लिक ईमेल के संग्रह पर हटाते हैं। आइटम अपने इनबॉक्स से तुरंत गायब हो जाते हैं, और वे अन्य कार्यों के साथ जारी रख सकते हैं। इस बीच, एक AJAX अनुरोध पृष्ठभूमि में आइटम को हटाने की प्रक्रिया कर रहा है।
- उपयोगकर्ता नए रिकॉर्ड के लिए एक फॉर्म भरता है। सेव पर क्लिक करता है। नया आइटम तुरंत सूची में दिखाई देता है। उपयोगकर्ता नए रिकॉर्ड जोड़ना जारी रख सकता है।
स्पष्ट करने के लिए, यहां AJAX अनुरोध को अवरुद्ध करने के उदाहरण हैं;
- उपयोगकर्ता क्लिक ईमेल के संग्रह पर हटाते हैं। एक घंटा चश्मा दिखाई देता है। AJAX का अनुरोध किया जाता है, और जब यह प्रतिक्रिया करता है कि प्रति घंटा कर्सर बंद हो जाता है। ऑपरेशन को पूरा करने के लिए उपयोगकर्ता को एक सेकंड इंतजार करना होगा।
- उपयोगकर्ता नए रिकॉर्ड के लिए एक फॉर्म भरता है। सेव पर क्लिक करता है। AJAX लोडर एनिमेशन के साथ फ़ॉर्म ग्रे हो जाता है। एक संदेश "आपका डेटा सहेजा गया" दिखाया गया है, और सूची में नया रिकॉर्ड दिखाई देता है।
दो उपर्युक्त परिदृश्यों के बीच अंतर यह है कि एक गैर-अवरुद्ध AJAX सेटअप ऑपरेटिंग प्रदर्शन की प्रतिक्रिया प्रदान नहीं करता है, और एक अवरुद्ध AJAX सेटअप करता है।
छिपे हुए AJAX अनुरोधों का जोखिम
AJAX अनुरोध की इस शैली का सबसे बड़ा जोखिम यह है कि AJAX अनुरोध विफल होने पर वेब एप्लिकेशन पूरी तरह से अलग स्थिति में हो सकता है।
उदाहरण के लिए, एक गैर-अवरुद्ध उदाहरण;
- उपयोगकर्ता ईमेल का एक गुच्छा चुनता है। डिलीट बटन पर क्लिक करता है। ऑपरेशन तुरंत होता है (आइटम केवल सूची से गायब हो जाते हैं)। उपयोगकर्ता तब कंपोज़ बटन पर क्लिक करता है और एक नया ईमेल लिखना शुरू करता है। यह इस समय है कि जावास्क्रिप्ट कोड को पता चलता है कि AJAX अनुरोध विफल हो गया है। स्क्रिप्ट त्रुटि संदेश दिखा सकती है, लेकिन यह वास्तव में इस समय व्यर्थ है।
वैकल्पिक रूप से, एक अवरुद्ध उदाहरण;
- उपयोगकर्ता ईमेल का एक गुच्छा चुनता है। डिलीट बटन पर क्लिक करता है। एक घंटे का ग्लास देखता है, लेकिन ऑपरेशन विफल हो जाता है। उन्हें एक त्रुटि संदेश मिला है जिसमें कहा गया है "त्रुटि। ब्ला ब्ला ब्ला"। वे ईमेल की सूची में वापस आ जाते हैं, और उनके पास अभी भी वे ईमेल हैं जिन्हें वे हटाना चाहते थे। वे उन्हें फिर से हटाने का प्रयास कर सकते थे।
गैर-अवरुद्ध AJAX अनुरोध करने के लिए अन्य तकनीकी जोखिम भी हैं। उपयोगकर्ता ब्राउज़र को बंद कर सकता है, किसी अन्य वेबसाइट पर नेविगेट कर सकता है और वे वर्तमान वेब में किसी अन्य स्थान पर नेविगेट कर सकते हैं जो किसी भी त्रुटि प्रतिक्रिया के संदर्भ को बेकार बनाता है।
तो यह लोकप्रिय क्यों हो रहा है?
Facebook, Google, Microsoft, आदि .. आदि। ये सभी बड़े डोमेन तेजी से गैर-अवरुद्ध AJAX अनुरोधों का उपयोग कर रहे हैं, जिससे यह प्रतीत होता है कि वे तुरंत प्रदर्शित होते हैं। मैंने ऐसे फॉर्म संपादकों में भी वृद्धि देखी है जिनके पास कोई सेव या सबमिट बटन नहीं है । जैसे ही आप कोई फ़ील्ड छोड़ते हैं या एंटर दबाते हैं। मान बच जाता है। ऐसा नहीं है कि आपका प्रोफ़ाइल अपडेट किया गया संदेश या बचत चरण नहीं है।
AJAX अनुरोध एक निश्चितता नहीं है, और उन्हें तब तक सफल नहीं माना जाना चाहिए जब तक कि वे पूर्ण न हो जाएं, लेकिन बहुत सारे प्रमुख वेब एप्लिकेशन उसी तरह काम कर रहे हैं।
क्या ये वेबसाइटें जो गैर-अवरोधक AJAX कॉल का उपयोग करती हैं, वे तेजी से दिखने की कीमत पर एक अनावश्यक जोखिम उठाते हुए उत्तरदायी अनुप्रयोगों का अनुकरण करती हैं?
क्या यह एक ऐसा डिज़ाइन पैटर्न है जिसे प्रतिस्पर्धी बने रहने के लिए हम सभी को अनुसरण करना चाहिए?