जेएस ट्यूटोरियल

जेएस होम जे एस परिचय जे एस कहाँ करने के लिए जेएस आउटपुट जेएस स्टेटमेंट्स जेएस सिंटेक्स जे एस टिप्पणियाँ जेएस चर जे एस लेट जेएस कॉन्स्ट जेएस ऑपरेटर्स जे एस अंकगणित जेएस असाइनमेंट जेएस डेटा प्रकार जे एस कार्य जेएस ऑब्जेक्ट्स जेएस इवेंट्स जे एस स्ट्रिंग्स जे एस स्ट्रिंग तरीके जे एस स्ट्रिंग खोज जे एस स्ट्रिंग टेम्पलेट्स जेएस नंबर जेएस संख्या के तरीके जे एस सरणी जेएस सरणी के तरीके जेएस ऐरे सॉर्ट जेएस सरणी पुनरावृत्ति जेएस ऐरे कॉन्स्ट जे एस तिथियाँ जेएस तिथि प्रारूप जेएस तिथि प्राप्त करने के तरीके JS दिनांक सेट विधियाँ जे एस मठ जे एस रैंडम जे एस बूलियन्स जेएस तुलना जे एस शर्तें जे एस स्विच जेएस लूप फॉर In . के लिए JS लूप ओएफ के लिए जेएस लूप जेएस लूप जबकि जेएस ब्रेक जेएस Iterables जेएस सेट जेएस मैप्स जेएस टाइपोफ जे एस प्रकार रूपांतरण जेएस बिटवाइज जेएस रेगएक्सपी जे एस त्रुटियाँ जेएस स्कोप जे एस उत्थापन जेएस सख्त मोड जेएस यह कीवर्ड जेएस एरो फंक्शन जेएस क्लासेस जेएस JSON जेएस डिबगिंग जेएस स्टाइल गाइड जेएस सर्वोत्तम अभ्यास जेएस गलतियाँ जेएस प्रदर्शन जेएस आरक्षित शब्द

जेएस संस्करण

जेएस संस्करण जेएस 2009 (ES5) जेएस 2015 (ईएस6) जेएस 2016 जेएस 2017 जेएस 2018 जेएस आईई / एज जेएस इतिहास

जेएस ऑब्जेक्ट्स

वस्तु परिभाषाएँ वस्तु गुण वस्तु के तरीके वस्तु प्रदर्शन ऑब्जेक्ट एक्सेसर्स वस्तु निर्माता वस्तु प्रोटोटाइप वस्तु पुनरावर्तनीय वस्तु समूह वस्तु मानचित्र वस्तु संदर्भ

जे एस कार्य

फ़ंक्शन परिभाषाएँ फंक्शन पैरामीटर्स समारोह आमंत्रण फंक्शन कॉल समारोह लागू करें फंक्शन क्लोजर

जेएस क्लासेस

कक्षा परिचय वर्ग वंशानुक्रम क्लास स्टेटिक

जे एस एसिंक

जेएस कॉलबैक जे एस अतुल्यकालिक जे एस वादा जे एस एसिंक/प्रतीक्षा

जेएस एचटीएमएल डोम

डोम परिचय डोम तरीके डोम दस्तावेज़ डोम तत्व डोम एचटीएमएल डोम फॉर्म डोम सीएसएस डोम एनिमेशन डोम घटनाक्रम डोम इवेंट श्रोता डोम नेविगेशन डोम नोड्स डोम संग्रह डोम नोड सूचियाँ

जेएस ब्राउज़र बीओएम

जेएस विंडो जेएस स्क्रीन जेएस स्थान जेएस इतिहास जेएस नेविगेटर जेएस पॉपअप अलर्ट जेएस टाइमिंग जे एस कुकीज़

जेएस वेब एपीआई

वेब एपीआई परिचय वेब फॉर्म एपीआई वेब इतिहास एपीआई वेब संग्रहण API वेब वर्कर एपीआई वेब फ़ेच एपीआई वेब जियोलोकेशन एपीआई

जे एस अजाक्स

AJAX परिचय अजाक्स एक्सएमएलएचटीपी अजाक्स अनुरोध अजाक्स प्रतिक्रिया अजाक्स एक्सएमएल फ़ाइल अजाक्स पीएचपी अजाक्स एएसपी AJAX डेटाबेस अजाक्स अनुप्रयोग अजाक्स उदाहरण

जेएस JSON

JSON परिचय JSON सिंटैक्स जेएसओएन बनाम एक्सएमएल JSON डेटा प्रकार JSON पार्स JSON स्ट्रिंगिफ़ाई JSON ऑब्जेक्ट्स JSON सरणियाँ JSON सर्वर जेएसओएन पीएचपी जेएसओएन एचटीएमएल जेएसओएन जेएसओएनपी

जेएस बनाम jQuery

jQuery चयनकर्ता jQuery एचटीएमएल jQuery सीएसएस jQuery डोम

जेएस ग्राफिक्स

जेएस ग्राफिक्स जेएस कैनवास जे एस प्लॉटली जेएस चार्ट.जेएस जेएस गूगल चार्ट जेएस डी3.जेएस

जेएस उदाहरण

जेएस उदाहरण जेएस एचटीएमएल डोम जेएस एचटीएमएल इनपुट जेएस एचटीएमएल ऑब्जेक्ट्स जेएस एचटीएमएल इवेंट्स जेएस ब्राउज़र जे एस संपादक जे एस व्यायाम जे एस प्रश्नोत्तरी जेएस प्रमाणपत्र

जे एस संदर्भ

जावास्क्रिप्ट ऑब्जेक्ट्स एचटीएमएल डोम ऑब्जेक्ट्स


अजाक्स - XMLHttpRequest


XMLHttpRequest ऑब्जेक्ट का उपयोग सर्वर से डेटा का अनुरोध करने के लिए किया जाता है।


एक सर्वर को एक अनुरोध भेजें

सर्वर को अनुरोध भेजने के लिए, हम XMLHttpRequestऑब्जेक्ट के खुले () और भेजें () विधियों का उपयोग करते हैं:

xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
Method Description
open(method, url, async) Specifies the type of request

method: the type of request: GET or POST
url: the server (file) location
async: true (asynchronous) or false (synchronous)
send() Sends the request to the server (used for GET)
send(string) Sends the request to the server (used for POST)

यूआरएल - सर्वर पर एक फाइल

विधि का url पैरामीटर open(), सर्वर पर किसी फ़ाइल का पता है:

xhttp.open("GET", "ajax_test.asp", true);

फ़ाइल किसी भी प्रकार की फ़ाइल हो सकती है, जैसे .txt और .xml, या सर्वर स्क्रिप्टिंग फ़ाइलें जैसे .asp और .php (जो प्रतिक्रिया वापस भेजने से पहले सर्वर पर कार्रवाई कर सकती हैं)।


अतुल्यकालिक - सही या गलत?

सर्वर अनुरोध अतुल्यकालिक रूप से भेजे जाने चाहिए।

open() विधि का async पैरामीटर सत्य पर सेट होना चाहिए:

xhttp.open("GET", "ajax_test.asp", true);

अतुल्यकालिक रूप से भेजकर, जावास्क्रिप्ट को सर्वर प्रतिक्रिया के लिए प्रतीक्षा करने की आवश्यकता नहीं है, बल्कि इसके बजाय:

  • सर्वर प्रतिक्रिया की प्रतीक्षा करते हुए अन्य स्क्रिप्ट निष्पादित करें
  • प्रतिक्रिया तैयार होने के बाद प्रतिक्रिया से निपटें

async पैरामीटर के लिए डिफ़ॉल्ट मान async = true है।

आप अपने कोड से तीसरे पैरामीटर को सुरक्षित रूप से हटा सकते हैं।

सिंक्रोनस XMLHttpRequest (async = false) की अनुशंसा नहीं की जाती है क्योंकि सर्वर प्रतिक्रिया तैयार होने तक जावास्क्रिप्ट निष्पादित करना बंद कर देगा। यदि सर्वर व्यस्त या धीमा है, तो एप्लिकेशन हैंग या बंद हो जाएगा।


प्राप्त करें या पोस्ट करें?

GETकी तुलना में सरल और तेज़ है POST, और अधिकांश मामलों में इसका उपयोग किया जा सकता है।

हालाँकि, हमेशा POST अनुरोधों का उपयोग करें जब:

  • कैश्ड फ़ाइल एक विकल्प नहीं है (सर्वर पर फ़ाइल या डेटाबेस अपडेट करें)।
  • सर्वर पर बड़ी मात्रा में डेटा भेजना (POST की कोई आकार सीमा नहीं है)।
  • उपयोगकर्ता इनपुट भेजना (जिसमें अज्ञात वर्ण हो सकते हैं), POST GET की तुलना में अधिक मजबूत और सुरक्षित है।

अनुरोध प्राप्त करें

एक साधारण GETअनुरोध:

उदाहरण

xhttp.open("GET", "demo_get.asp");
xhttp.send();

ऊपर के उदाहरण में, आपको कैश्ड परिणाम मिल सकता है। इससे बचने के लिए URL में एक यूनिक आईडी जोड़ें:

उदाहरण

xhttp.open("GET", "demo_get.asp?t=" + Math.random());
xhttp.send();

यदि आप विधि के साथ जानकारी भेजना चाहते हैं GET, तो जानकारी को URL में जोड़ें:

उदाहरण

xhttp.open("GET", "demo_get2.asp?fname=Henry&lname=Ford");
xhttp.send();

सर्वर इनपुट का उपयोग कैसे करता है और सर्वर कैसे अनुरोध का जवाब देता है, इसे बाद के अध्याय में समझाया गया है।



पोस्ट अनुरोध

एक साधारण POSTअनुरोध:

उदाहरण

xhttp.open("POST", "demo_post.asp");
xhttp.send();

एचटीएमएल फॉर्म की तरह डेटा पोस्ट करने के लिए, एक HTTP शीर्षलेख जोड़ें setRequestHeader()send()उस डेटा को निर्दिष्ट करें जिसे आप विधि में भेजना चाहते हैं :

उदाहरण

xhttp.open("POST", "ajax_test.asp");
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=Henry&lname=Ford");
Method Description
setRequestHeader(header, value) Adds HTTP headers to the request

header: specifies the header name
value: specifies the header value

तुल्यकालिक अनुरोध

open()एक सिंक्रोनस अनुरोध निष्पादित करने के लिए, विधि में तीसरे पैरामीटर को इसमें बदलें false:

xhttp.open("GET", "ajax_info.txt", false);

कभी-कभी त्वरित परीक्षण के लिए async = false का उपयोग किया जाता है। आपको पुराने जावास्क्रिप्ट कोड में सिंक्रोनस अनुरोध भी मिलेंगे।

चूंकि कोड सर्वर के पूरा होने की प्रतीक्षा करेगा, इसलिए किसी फ़ंक्शन की कोई आवश्यकता नहीं है onreadystatechange :

उदाहरण

xhttp.open("GET", "ajax_info.txt", false);
xhttp.send();
document.getElementById("demo").innerHTML = xhttp.responseText;

सिंक्रोनस XMLHttpRequest (async = false) की अनुशंसा नहीं की जाती है क्योंकि सर्वर प्रतिक्रिया तैयार होने तक जावास्क्रिप्ट निष्पादित करना बंद कर देगा। यदि सर्वर व्यस्त या धीमा है, तो एप्लिकेशन हैंग या बंद हो जाएगा।

आधुनिक डेवलपर टूल को सिंक्रोनस अनुरोधों का उपयोग करने के बारे में चेतावनी देने के लिए प्रोत्साहित किया जाता है और ऐसा होने पर एक InvalidAccessError अपवाद फेंक सकता है।