एजेक्स (प्रोग्रामिंग)

अजाक्स (AJAX भी ; अतुल्यकालिक I/O जावास्क्रिप्ट और XML के लिए संक्षिप्त) वेब विकास  तकनीकों का एक सेट है जो एसिंक्रोनस वेब एप्लिकेशन बनाने के लिए  ग्राहक की ओर  पर विभिन्न वेब तकनीकों का उपयोग करता है। अजाक्स के साथ, वेब एप्लिकेशन मौजूदा पृष्ठ के प्रदर्शन और व्यवहार में हस्तक्षेप किए बिना वेब सर्वर से एसिंक्रोनस रूप से (पृष्ठभूमि में) डेटा भेज और पुनर्प्राप्त कर सकते हैं। प्रेजेंटेशन लेयर से आंकडों का आदान प्रदान लेयर को अलग करके, अजाक्स पूरे पेज को फिर से लोड करने की आवश्यकता के बिना सामग्री को गतिशील रूप से बदलने के लिए वेब पेजों और, विस्तार से, वेब अनुप्रयोगों की अनुमति देता है। व्यवहार में, आधुनिक कार्यान्वयन सामान्यतः XML के बजाय JSON का उपयोग करते हैं।

अजाक्स एक तकनीक नहीं है, बल्कि एक प्रोग्रामिंग अवधारणा है। हाइपर टेक्स्ट मार्कअप लैंग्वेज  और व्यापक शैली पत्रक का उपयोग मार्क अप और स्टाइल जानकारी के संयोजन में किया जा सकता है। वेबपेज को गतिशील रूप से प्रदर्शित करने के लिए जावास्क्रिप्ट द्वारा संशोधित किया जा सकता है - और उपयोगकर्ता को नई जानकारी के साथ बातचीत करने की अनुमति देता है। अंतर्निहित XMLHttpRequest ऑब्जेक्ट का उपयोग वेबपृष्ठों पर अजाक्स निष्पादित करने के लिए किया जाता है, जिससे वेबसाइटों को पृष्ठ को रीफ्रेश किए बिना स्क्रीन पर सामग्री लोड करने की अनुमति मिलती है। अजाक्स कोई नई तकनीक नहीं है, न ही यह कोई नई भाषा है। इसके बजाय, यह मौजूदा तकनीकों का एक नए तरीके से उपयोग किया जाता है।

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

1996 में, इंटरनेट एक्सप्लोरर द्वारा HTML एलिमेंट#फ्रेम्स टैग पेश किया गया था; HTML तत्व#छवियों और वस्तुओं तत्व की तरह, यह सामग्री को अतुल्यकालिक रूप से लोड या प्राप्त कर सकता है। 1998 में, Microsoft आउटलुक वेब एक्सेस टीम ने XMLHttpRequest स्क्रिप्टिंग ऑब्जेक्ट के पीछे की अवधारणा विकसित की। यह MSXML लाइब्रेरी के दूसरे संस्करण में XMLHTTP के रूप में दिखाई दिया, जिसे मार्च 1999 में इंटरनेट एक्सप्लोरर 5.0 के साथ भेज दिया गया। IE 5 में Windows XMLHTTP ActiveX नियंत्रण की कार्यक्षमता को बाद में फ़ायरफ़ॉक्स, सफारी (वेब ​​ब्राउज़र), ओपेरा (वेब ​​ब्राउज़र), Google क्रोम और अन्य ब्राउज़रों द्वारा XMLHttpRequest JavaScript ऑब्जेक्ट के रूप में लागू किया गया था। Microsoft ने Internet Explorer 7 के रूप में मूल XMLHttpRequest मॉडल को अपनाया। ActiveX संस्करण अभी भी Internet Explorer में समर्थित है, लेकिन Microsoft Edge में नहीं। इन पृष्ठभूमि HTTP अनुरोधों और अतुल्यकालिक वेब तकनीकों की उपयोगिता तब तक काफी अस्पष्ट रही जब तक कि यह आउटलुक वेब एक्सेस (2000) जैसे बड़े पैमाने के ऑनलाइन अनुप्रयोगों में दिखाई देने लगी। और अजीब पोस्ट (2002)।

गूगल ने जीमेल लगीं  (2004) और  गूगल मानचित्र  (2005) के साथ मानक-अनुपालन, क्रॉस ब्राउज़र अजाक्स की व्यापक तैनाती की। अक्टूबर 2004 में Kayak.com का सार्वजनिक बीटा रिलीज़ उन पहले बड़े पैमाने के ई-कॉमर्स उपयोगों में से एक था जिसे उस समय उनके डेवलपर्स ने xml http चीज़ कहा था। इसने वेब प्रोग्राम डेवलपर्स के बीच अजाक्स में रुचि बढ़ाई।

AJAX शब्द का सार्वजनिक रूप से उपयोग 18 फरवरी 2005 को जेसी जेम्स गैरेट द्वारा Ajax: A New Approach to Web Applications नामक एक लेख में किया गया था, जो Google पृष्ठों पर उपयोग की जाने वाली तकनीकों पर आधारित है। 5 अप्रैल 2006 को, विश्वव्यापी वेब संकाय (W3C) ने आधिकारिक वेब मानक बनाने के प्रयास में XMLHttpRequest ऑब्जेक्ट के लिए पहला मसौदा विनिर्देश जारी किया। XMLHttpRequest ऑब्जेक्ट का नवीनतम मसौदा 6 अक्टूबर 2016 को प्रकाशित हुआ था, और XMLHttpRequest विनिर्देश अब एक जीवित दस्तावेज़ है।

टेक्नोलॉजीज
अजाक्स शब्द वेब प्रौद्योगिकियों के एक व्यापक समूह का प्रतिनिधित्व करने के लिए आया है जिसका उपयोग वेब एप्लिकेशन को लागू करने के लिए किया जा सकता है जो पृष्ठ की वर्तमान स्थिति में हस्तक्षेप किए बिना पृष्ठभूमि में एक सर्वर के साथ संचार करता है। अजाक्स शब्द गढ़ने वाले लेख में, जेसी जेम्स गैरेट ने समझाया कि निम्नलिखित तकनीकों को शामिल किया गया है:
 * एचटीएमएल (या एक्सएचटीएमएल) और सीएसएस प्रस्तुति के लिए
 * डेटा के गतिशील प्रदर्शन और बातचीत के लिए दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम)।
 * डेटा के आदान-प्रदान के लिए JSON या XML, और XML हेरफेर के लिए XSLT
 * अतुल्यकालिक संचार के लिए XMLHttpRequest वस्तु
 * जावास्क्रिप्ट इन तकनीकों को एक साथ लाने के लिए

तब से, हालांकि, अजाक्स एप्लिकेशन में उपयोग की जाने वाली तकनीकों में और अजाक्स शब्द की परिभाषा में कई विकास हुए हैं। XML की अब डेटा इंटरचेंज के लिए आवश्यकता नहीं है और इसलिए, डेटा के हेरफेर के लिए XSLT की अब आवश्यकता नहीं है। JSON (JSON) का उपयोग अक्सर डेटा इंटरचेंज के लिए एक वैकल्पिक प्रारूप के रूप में किया जाता है, हालाँकि अन्य प्रारूप जैसे पूर्वनिर्मित HTML या सादा पाठ का भी उपयोग किया जा सकता है। JQuery सहित विभिन्न प्रकार की लोकप्रिय जावास्क्रिप्ट लाइब्रेरी में अजाक्स अनुरोधों को निष्पादित करने में सहायता के लिए सार शामिल हैं।

जावास्क्रिप्ट उदाहरण
जावास्क्रिप्ट में लिखित GET (HTTP) पद्धति का उपयोग करके एक साधारण अजाक्स अनुरोध का एक उदाहरण।

get-AJAX-data.js:

भेजें-AJAX-data.php:

उदाहरण प्राप्त करें
प्राप्त करें एक मूल JavaScript API है। Google Developers Documentation के अनुसार, Fetch पुराने XMLHttpRequest की तुलना में वेब अनुरोध करना और प्रतिक्रियाओं को हैंडल करना आसान बनाता है।

ES7 async/प्रतीक्षा उदाहरण
फ़ेच जावास्क्रिप्ट पर निर्भर करता है वादा।  e> विशिष्टता से भिन्न है   निम्नलिखित महत्वपूर्ण तरीकों से:


 * वादा से लौट आया  प्रतिक्रिया HTTP 404 या 500 होने पर भी HTTP त्रुटि स्थिति पर अस्वीकार नहीं होगी। इसके बजाय, जैसे ही सर्वर शीर्षलेखों के साथ प्रतिक्रिया करता है, वादा सामान्य रूप से हल हो जाएगा (के साथ)   यदि प्रतिक्रिया 200–299 की सीमा में नहीं है, तो प्रतिक्रिया की संपत्ति गलत पर सेट हो जाती है), और यह केवल नेटवर्क विफलता पर या किसी भी चीज़ के अनुरोध को पूरा होने से रोके जाने पर अस्वीकार कर देगी।
 * जब तक आप क्रेडेंशियल्स init विकल्प सेट नहीं करते हैं, तब तक क्रॉस-ऑरिजिन कुकीज़ नहीं भेजेंगे। (अप्रैल 2018 से। युक्ति ने डिफ़ॉल्ट क्रेडेंशियल नीति को बदल दिया है . फ़ायरफ़ॉक्स 61.0b13 से बदल गया है।)

यह भी देखें

 * ActionScript
 * धूमकेतु (प्रोग्रामिंग) (रिवर्स अजाक्स के रूप में भी जाना जाता है)
 * गूगल झटपट
 * एचटीटीपी/2
 * अजाक्स ढांचे की सूची
 * नोड.जेएस
 * रिमोट स्क्रिप्टिंग
 * समृद्ध वेब अनुप्रयोग
 * वेबसॉकेट
 * आप ऊब जाएंगे 5
 * वेब ढांचा
 * जावास्क्रिप्ट पुस्तकालय

बाहरी संबंध
<!--