एजेक्स (प्रोग्रामिंग): Difference between revisions
No edit summary |
(→इतिहास) |
||
Line 11: | Line 11: | ||
}} | }} | ||
अजाक्स (AJAX भी {{IPAc-en|ˈ|eɪ|dʒ|æ|k|s}}; "एसिंक्रोनस [[जावास्क्रिप्ट]] और [[XML]] के लिए संक्षेपण)<ref name="garrett" /><ref>{{Cite web|url=https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX|title=अजाक्स - वेब डेवलपर गाइड|website=[[MDN Web Docs]]|access-date=2018-02-27|archive-url=https://web.archive.org/web/20180228161512/https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX|archive-date=28 February 2018|url-status=live}}</ref> [[ वेब विकास |वेब डेवलपमेंट]] तकनीकों का एक समुच्चय है जो अतुल्यकालिक वेब एप्लिकेशन सृजन करने के लिए [[ ग्राहक की ओर |क्लाइंट-साइड]] पर विभिन्न वेब तकनीकों का उपयोग करता है। अजाक्स के साथ वेब एप्लिकेशन उपस्थित पेज के प्रदर्शन और गतिविधि में हस्तक्षेप किए बिना [[वेब सर्वर]] से अतुल्यकालिक रूप से (पार्श्व में) डेटा प्रेषण और पुनर्प्राप्त कर सकते हैं। | अजाक्स (AJAX भी {{IPAc-en|ˈ|eɪ|dʒ|æ|k|s}}; "एसिंक्रोनस [[जावास्क्रिप्ट]] और [[XML]] के लिए संक्षेपण)<ref name="garrett" /><ref>{{Cite web|url=https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX|title=अजाक्स - वेब डेवलपर गाइड|website=[[MDN Web Docs]]|access-date=2018-02-27|archive-url=https://web.archive.org/web/20180228161512/https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX|archive-date=28 February 2018|url-status=live}}</ref> [[ वेब विकास |वेब डेवलपमेंट]] तकनीकों का एक समुच्चय है जो अतुल्यकालिक वेब एप्लिकेशन सृजन करने के लिए [[ ग्राहक की ओर |क्लाइंट-साइड]] पर विभिन्न वेब तकनीकों का उपयोग करता है। अजाक्स के साथ वेब एप्लिकेशन उपस्थित पेज के प्रदर्शन और गतिविधि में हस्तक्षेप किए बिना [[वेब सर्वर]] से अतुल्यकालिक रूप से (पार्श्व में) डेटा प्रेषण और पुनर्प्राप्त कर सकते हैं। प्रेजेंटेशन लेयर से [[आंकडों का आदान प्रदान|डेटा इंटरचेंज]] लेयर को पृथक करके, अजाक्स सम्पूर्ण पेज को पुनः भारण करने की आवश्यकता के बिना सामग्री को सक्रियता से परिवर्तित करने के लिए वेबपेज और एक्सटेंशन द्वारा [[वेब अनुप्रयोग|वेब एप्लिकेशन]] की अनुमति देता है।<ref name="wrox">{{cite book | url=http://www.wrox.com/WileyCDA/Section/id-303217.html | title=अजाक्स शुरू करना| access-date=24 June 2008 | publisher=wrox | date=March 2007 | first=Chris | last=Ullman | isbn=978-0-470-10675-4 | archive-url=https://web.archive.org/web/20080705101852/http://www.wrox.com/WileyCDA/Section/id-303217.html | archive-date=5 July 2008 | url-status= live}}</ref> पद्धति में, आधुनिक कार्यान्वयन सामान्यतः एक्सएमएल के स्थान पर [[JSON|जावास्क्रिप्ट ऑब्जेक्ट नोटेशन]] का उपयोग करते हैं। | ||
अजाक्स एक तकनीक की अपेक्षाकृत एक प्रोग्रामिंग अवधारणा है। [[ हाइपर टेक्स्ट मार्कअप लैंग्वेज |हाइपर टेक्स्ट मार्कअप लैंग्वेज]] और [[व्यापक शैली पत्रक|सीएसएस]] का उपयोग चिह्नित और शैलीबद्ध करने के संयोजन में किया जा सकता है। वेबपेज को गतिशील रूप से प्रदर्शित करने के लिए जावास्क्रिप्ट द्वारा संशोधित किया जा सकता है - और उपयोगकर्ता को नई जानकारी के साथ परस्पर प्रभाव करने की अनुमति देता है। अंतर्निहित [[XMLHttpRequest]] ऑब्जेक्ट का उपयोग वेबपृष्ठों पर अजाक्स निष्पादित करने के लिए किया जाता है, जिससे वेबसाइटों को पृष्ठ को रीफ्रेश किए बिना स्क्रीन पर सामग्री लोड करने की अनुमति मिलती है। अजाक्स कोई नई तकनीक या भाषा नहीं है। इसके अतिरिक्त यह उपस्थित तकनीकों का एक नए तरीके से उपयोग किया जाता है। | अजाक्स एक तकनीक की अपेक्षाकृत एक प्रोग्रामिंग अवधारणा है। [[ हाइपर टेक्स्ट मार्कअप लैंग्वेज |हाइपर टेक्स्ट मार्कअप लैंग्वेज]] और [[व्यापक शैली पत्रक|सीएसएस]] का उपयोग चिह्नित और शैलीबद्ध करने के संयोजन में किया जा सकता है। वेबपेज को गतिशील रूप से प्रदर्शित करने के लिए जावास्क्रिप्ट द्वारा संशोधित किया जा सकता है - और उपयोगकर्ता को नई जानकारी के साथ परस्पर प्रभाव करने की अनुमति देता है। अंतर्निहित [[XMLHttpRequest]] ऑब्जेक्ट का उपयोग वेबपृष्ठों पर अजाक्स निष्पादित करने के लिए किया जाता है, जिससे वेबसाइटों को पृष्ठ को रीफ्रेश किए बिना स्क्रीन पर सामग्री लोड करने की अनुमति मिलती है। अजाक्स कोई नई तकनीक या भाषा नहीं है। इसके अतिरिक्त यह उपस्थित तकनीकों का एक नए तरीके से उपयोग किया जाता है। |
Revision as of 19:37, 3 March 2023
पहली प्रस्तुति | March 1999 |
---|---|
फ़ाइल नाम एक्सटेंशनएस | .js |
फ़ाइल प्रारूपएस | JavaScript |
Influenced by | |
JavaScript and XML |
अजाक्स (AJAX भी /ˈeɪdʒæks/; "एसिंक्रोनस जावास्क्रिप्ट और XML के लिए संक्षेपण)[1][2] वेब डेवलपमेंट तकनीकों का एक समुच्चय है जो अतुल्यकालिक वेब एप्लिकेशन सृजन करने के लिए क्लाइंट-साइड पर विभिन्न वेब तकनीकों का उपयोग करता है। अजाक्स के साथ वेब एप्लिकेशन उपस्थित पेज के प्रदर्शन और गतिविधि में हस्तक्षेप किए बिना वेब सर्वर से अतुल्यकालिक रूप से (पार्श्व में) डेटा प्रेषण और पुनर्प्राप्त कर सकते हैं। प्रेजेंटेशन लेयर से डेटा इंटरचेंज लेयर को पृथक करके, अजाक्स सम्पूर्ण पेज को पुनः भारण करने की आवश्यकता के बिना सामग्री को सक्रियता से परिवर्तित करने के लिए वेबपेज और एक्सटेंशन द्वारा वेब एप्लिकेशन की अनुमति देता है।[3] पद्धति में, आधुनिक कार्यान्वयन सामान्यतः एक्सएमएल के स्थान पर जावास्क्रिप्ट ऑब्जेक्ट नोटेशन का उपयोग करते हैं।
अजाक्स एक तकनीक की अपेक्षाकृत एक प्रोग्रामिंग अवधारणा है। हाइपर टेक्स्ट मार्कअप लैंग्वेज और सीएसएस का उपयोग चिह्नित और शैलीबद्ध करने के संयोजन में किया जा सकता है। वेबपेज को गतिशील रूप से प्रदर्शित करने के लिए जावास्क्रिप्ट द्वारा संशोधित किया जा सकता है - और उपयोगकर्ता को नई जानकारी के साथ परस्पर प्रभाव करने की अनुमति देता है। अंतर्निहित XMLHttpRequest ऑब्जेक्ट का उपयोग वेबपृष्ठों पर अजाक्स निष्पादित करने के लिए किया जाता है, जिससे वेबसाइटों को पृष्ठ को रीफ्रेश किए बिना स्क्रीन पर सामग्री लोड करने की अनुमति मिलती है। अजाक्स कोई नई तकनीक या भाषा नहीं है। इसके अतिरिक्त यह उपस्थित तकनीकों का एक नए तरीके से उपयोग किया जाता है।
इतिहास
वर्ष 1990 के दशक के प्रारंभ से लेकर मध्य तक अधिकांश वेबसाइट संपूर्ण HTML पृष्ठों पर आधारित थीं। प्रत्येक उपयोगकर्ता कार्रवाई के लिए सर्वर से लोड होने के लिए एक पूर्ण नए पृष्ठ की आवश्यकता होती है। यह प्रक्रिया अक्षम थी जैसा कि उपयोगकर्ता अनुभव से परिलक्षित होता है: पृष्ठ की सभी सामग्री लुप्त हो जाती है और पुनः नया पृष्ठ प्रकट होता है। हर बार आंशिक परिवर्तन के कारण ब्राउज़र द्वारा किसी पृष्ठ को पुनः लोड करने पर, सभी सामग्री को फिर से भेजना पड़ता था, भले ही केवल कुछ जानकारी बदली गई थी। इसने सर्वर पर अतिरिक्त भार डाला और बैंडविड्थ (कंप्यूटिंग) को प्रदर्शन में एक सीमित कारक बना दिया।
वर्ष 1996 में, इंटरनेट एक्सप्लोरर द्वारा HTML आईफ्रेम टैग प्रस्तुत किया था;[4] HTML तत्व#छवियों और वस्तुओं तत्व की तरह, यह सामग्री को अतुल्यकालिक रूप से लोड या प्राप्त कर सकता है। 1998 में, Microsoft आउटलुक वेब एक्सेस टीम ने XMLHttpRequest स्क्रिप्टिंग ऑब्जेक्ट के पीछे की अवधारणा विकसित की।[5] यह MSXML लाइब्रेरी के दूसरे संस्करण में XMLHTTP के रूप में दिखाई दिया,[5][6] जिसे मार्च 1999 में इंटरनेट एक्सप्लोरर 5.0 के साथ भेज दिया गया।[7] IE 5 में Windows XMLHTTP ActiveX नियंत्रण की कार्यक्षमता को बाद में फ़ायरफ़ॉक्स, सफारी (वेब ब्राउज़र), ओपेरा (वेब ब्राउज़र), Google क्रोम और अन्य ब्राउज़रों द्वारा XMLHttpRequest JavaScript ऑब्जेक्ट के रूप में लागू किया गया था।[8] Microsoft ने Internet Explorer 7 के रूप में मूल XMLHttpRequest मॉडल को अपनाया। ActiveX संस्करण अभी भी Internet Explorer में समर्थित है, लेकिन Microsoft Edge में नहीं। इन पृष्ठभूमि HTTP अनुरोधों और अतुल्यकालिक वेब तकनीकों की उपयोगिता तब तक काफी अस्पष्ट रही जब तक कि यह आउटलुक वेब एक्सेस (2000) जैसे बड़े पैमाने के ऑनलाइन अनुप्रयोगों में दिखाई देने लगी।[9] और अजीब पोस्ट (2002)।
गूगल ने जीमेल (2004) और गूगल मैप्स (2005) के साथ मानक-अनुपालन, क्रॉस ब्राउज़र अजाक्स का व्यापक परिनियोजन किया।[10] अक्टूबर 2004 में Kayak.com का सार्वजनिक बीटा रिलीज़ उन पहले बड़े पैमाने के ई-कॉमर्स उपयोगों में से एक था जिसे उस समय उनके डेवलपर्स ने xml http चीज़ कहा था।[11] इसने वेब प्रोग्राम डेवलपर्स के बीच अजाक्स में रुचि बढ़ाई।
AJAX शब्द का सार्वजनिक रूप से उपयोग 18 फरवरी 2005 को जेसी जेम्स गैरेट द्वारा अजाक्स ए न्यू अप्रोच टू वेब एप्लिकेशन नामक एक लेख में किया गया था, जो Google पेज पर उपयोग की जाने वाली तकनीकों पर आधारित है। [1]
5 अप्रैल 2006 को, वर्ल्ड वाइड वेब कंसोर्टियम (W3C) ने आधिकारिक वेब मानक बनाने के प्रयास में XMLHttpRequest ऑब्जेक्ट के लिए पहला प्रारुप विनिर्देश विमुक्त किया।[12]XMLHttpRequest ऑब्जेक्ट का नवीनतम प्रारुप 6 अक्टूबर 2016 को प्रकाशित हुआ था,[13] और XMLHttpRequest विनिर्देश अब एक जीवन स्तर है।[14]
प्रौद्योगिकी
अजाक्स शब्द वेब प्रौद्योगिकियों के एक व्यापक समूह का प्रतिनिधित्व करने के लिए आया है जिसका उपयोग वेब एप्लिकेशन को लागू करने के लिए किया जा सकता है जो पेज की वर्तमान स्थिति में हस्तक्षेप किए बिना पृष्ठभूमि में एक सर्वर के साथ संचार करता है। अजाक्स शब्द गढ़ने वाले लेख में, जेसी जेम्स गैरेट ने समझाया कि निम्नलिखित तकनीकों को सम्मिलित किया गया है:[1][3]
- एचटीएमएल (या एक्सएचटीएमएल) और सीएसएस प्रस्तुति के लिए
- डॉक्यूमेंटऑब्जेक्ट मॉडल (DOM) डेटा के गतिशील प्रदर्शन और सहभागिता के लिए
- डेटा के आदान-प्रदान के लिए JSON या XML और XML परिचालन के लिए XSLT
- अतुल्यकालिक संचार के लिए XMLHttpRequest उद्देश्य
- इन तकनीकों को एक साथ लाने के लिए जावास्क्रिप्ट
हालांकि तब से, अजाक्स एप्लिकेशन में उपयोग की जाने वाली तकनीकों में और अजाक्स शब्द की परिभाषा में कई विकास हुए हैं। इसलिए अब डेटा इंटरचेंज के लिए XML और डेटा के परिचालन के लिए XSLT की आवश्यकता नहीं है। जावास्क्रिप्ट ऑब्जेक्ट नोटेशन (JSON) को प्रायः डेटा इंटरचेंज के लिए एक वैकल्पिक प्रारूप के रूप में उपयोग किया जाता है,[15] हालांकि अन्य प्रारूप जैसे पूर्वनिर्मित HTML या प्लेन टेक्स्ट का भी उपयोग किया जा सकता है।[16] JQuery सहित विभिन्न प्रकार की लोकप्रिय जावास्क्रिप्ट लाइब्रेरी में अजाक्स अनुरोधों को निष्पादित करने में सहायता के लिए संक्षेपण सम्मिलित हैं।
उदाहरण
जावास्क्रिप्ट उदाहरण
जावास्क्रिप्ट में लिखित GET (HTTP) पद्धति का उपयोग करते हुए एक साधारण अजाक्स अनुरोध का एक उदाहरण।
get-AJAX-data.js:
// This is the client-side script.
// Initialize the HTTP request.
let xhr = new XMLHttpRequest();
// define the request
xhr.open('GET', 'send-ajax-data.php');
// Track the state changes of the request.
xhr.onreadystatechange = function () {
const DONE = 4; // readyState 4 means the request is done.
const OK = 200; // status 200 is a successful return.
if (xhr.readyState === DONE) {
if (xhr.status === OK) {
console.log(xhr.responseText); // 'This is the output.'
} else {
console.log('Error: ' + xhr.status); // An error occurred during the request.
}
}
};
// Send the request to send-ajax-data.php
xhr.send(null);
भेजें-AJAX-data.php:
<?php
// This is the server-side script.
// Set the content type.
header('Content-Type: text/plain');
// Send the data back.
echo "This is the output.";
?>
उदाहरण प्राप्त करें
प्राप्त किया गया मूल JavaScript API है।[17] Google Developers Documentation के अनुसार, Fetch पुराने XMLHttpRequest की तुलना में वेब अनुरोध करना और प्रतिक्रियाओं को संभालना आसान बनाता है।
fetch('send-ajax-data.php')
.then(data => console.log(data))
.catch (error => console.log('Error:' + error));
ES7 async/प्रतीक्षा उदाहरण
async function doAjax1() {
try {
const res = await fetch('send-ajax-data.php');
const data = await res.text();
console.log(data);
} catch (error) {
console.log('Error:' + error);
}
}
doAjax1();
फ़ेच जावास्क्रिप्ट की प्रतिज्ञा पर निर्भर करता है। फ़ेच fetch के विनिर्देश Ajax
अजाक्स से निम्नलिखित महत्वपूर्ण तरीकों से भिन्न हैं:
- वादा से लौट आया
fetch()
प्रतिक्रिया HTTP 404 या 500 होने पर भी HTTP त्रुटि स्थिति पर अस्वीकार नहीं होगी। इसके बजाय, जैसे ही सर्वर शीर्षलेखों के साथ प्रतिक्रिया करता है, वादा सामान्य रूप से हल हो जाएगा (के साथ)ok
यदि प्रतिक्रिया 200–299 की सीमा में नहीं है, तो प्रतिक्रिया की संपत्ति गलत पर सेट हो जाती है), और यह केवल नेटवर्क विफलता पर या किसी भी चीज़ के अनुरोध को पूरा होने से रोके जाने पर अस्वीकार कर देगी। fetch()
जब तक आप क्रेडेंशियल init विकल्प सेट नहीं करते हैं, तब तक लाने () क्रॉस-मूल कुकीज़ नहीं भेजेगा। (अप्रैल 2018 से युक्ति ने डिफ़ॉल्ट क्रेडेंशियल नीति को समान-मूल में बदल दिया। फ़ायरफ़ॉक्स 61.0b13 से बदल गया।)
यह भी देखें
- एक्शनस्क्रिप्ट
- कोमेट (प्रोग्रामिंग) (रिवर्स अजाक्स के रूप में भी जाना जाता है)
- गूगल इंस्टेंट
- एचटीटीपी/2
- अजाक्स संरचना की सूची
- नोड.जेएस
- रिमोट स्क्रिप्टिंग
- रिच वेब एप्लीकेशन
- वेबसॉकेट
- एचटीएमएल 5
- वेब संरचना
- जावास्क्रिप्ट संग्रह
संदर्भ
- ↑ 1.0 1.1 1.2 Jesse James Garrett (18 February 2005). "Ajax: A New Approach to Web Applications". AdaptivePath.com. Archived from the original on 10 September 2015. Retrieved 19 June 2008.
- ↑ "अजाक्स - वेब डेवलपर गाइड". MDN Web Docs. Archived from the original on 28 February 2018. Retrieved 27 February 2018.
- ↑ 3.0 3.1 Ullman, Chris (March 2007). अजाक्स शुरू करना. wrox. ISBN 978-0-470-10675-4. Archived from the original on 5 July 2008. Retrieved 24 June 2008.
- ↑ Joita, Alin (1 January 2011). "DISADVANTAGES PRESENTED BY HTML INLINE FRAMES IN INTEGRATION OF 3rd PARTY CONTENT".
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ 5.0 5.1 "मूल डेवलपर द्वारा XMLHTTP के इतिहास पर लेख". Alexhopmann.com. 31 January 2007. Archived from the original on 23 June 2007. Retrieved 14 July 2009.
- ↑ "Microsoft डेवलपर नेटवर्क से IXMLHTTPRequest इंटरफ़ेस की विशिष्टता". Msdn.microsoft.com. Archived from the original on 26 May 2016. Retrieved 14 July 2009.
- ↑ Dutta, Sunava (23 January 2006). "नेटिव XMLHTTPRequest ऑब्जेक्ट". IEBlog. Microsoft. Archived from the original on 6 March 2010. Retrieved 30 November 2006.
- ↑ "Dynamic HTML and XML: The XMLHttpRequest Object". Apple Inc. Archived from the original on 9 May 2008. Retrieved 25 June 2008.
- ↑ Hopmann, Alex. "XMLHTTP की कहानी". Alex Hopmann’s Blog. Archived from the original on 30 March 2010. Retrieved 17 May 2010.
- ↑ "अजाक्स का एक संक्षिप्त इतिहास". Aaron Swartz. 22 December 2005. Archived from the original on 3 June 2010. Retrieved 4 August 2009.
- ↑ English, Paul (12 April 2006). "कयाक यूजर इंटरफेस". Official Kayak.com Technoblog. Archived from the original on 23 May 2014. Retrieved 22 May 2014.
- ↑ van Kesteren, Anne; Jackson, Dean (5 April 2006). "XMLHttpRequest ऑब्जेक्ट". W3.org. World Wide Web Consortium. Archived from the original on 16 May 2008. Retrieved 25 June 2008.
- ↑ Kesteren, Anne; Aubourg, Julian; Song, Jungkee; Steen, Hallvord R. M. "XMLHttpRequest स्तर 1". W3.org. W3C. Archived from the original on 13 July 2017. Retrieved 19 February 2019.
- ↑ "XMLHttpRequest मानक". xhr.spec.whatwg.org. Retrieved 21 April 2020.
- ↑ "जावास्क्रिप्ट ऑब्जेक्ट नोटेशन". Apache.org. Archived from the original on 16 June 2008. Retrieved 4 July 2008.
- ↑ "JSON के साथ अपने अजाक्स-आधारित ऐप्स को गति दें". DevX.com. Archived from the original on 4 July 2008. Retrieved 4 July 2008.
- ↑ "फ़ेच एपीआई - वेब एपीआई". MDN. Archived from the original on 29 May 2019. Retrieved 30 May 2019.