2009-10-02 14 views
74

AJAX का सार क्या है? उदाहरण के लिए, मैं अपने पृष्ठ पर एक लिंक रखना चाहता हूं जैसे कि जब कोई उपयोगकर्ता इस लिंक पर क्लिक करता है, तो कुछ जानकारी वर्तमान सर्वर के पुनः लोड किए बिना मेरे सर्वर पर भेजी जाती है। क्या वह AJAX है?AJAX कैसे काम करता है?

मैं इस व्यवहार को isoframes का उपयोग करके प्राप्त करने में सक्षम था। अधिक जानकारी में मैंने एक छोटे आइसोफ्रेम में एक लिंक डाला है (चलो एक छोटी छवि कहें)। जब उपयोगकर्ता इस लिंक पर क्लिक करता है तो ब्राउज़र आइसोफ्रेम में केवल पृष्ठ को पुनः लोड करता है।

हालांकि, मुझे लगता है कि यह लक्ष्य तक पहुंचने का एक शानदार तरीका नहीं है। मुझे लगता है कि मुझे AJAX का उपयोग करना है। यह कैसे काम करता है? क्या एक्सएचटीएमएल का उपयोग विचारशील समस्या को एक सुरुचिपूर्ण तरीके से हल कर सकता है? या मुझे जावाकैम का उपयोग करने की ज़रूरत है?

मुझे ज्यादा आवश्यकता नहीं है। मैं सिर्फ एक छोटा लिंक चाहता हूं जो (क्लिक करने के बाद) सर्वर को कुछ जानकारी भेजता है। मान लें कि मेरे पास एक संदेश के पास "स्टार-इमेज" है। यदि कोई उपयोगकर्ता स्टार पर क्लिक करता है (उसे संदेश पसंद है) स्टार रंग बदलता है और मेरा सर्वर अपडेट डेटाबेस (याद रखने के लिए कि उपयोगकर्ता संदेश पसंद करता है)।

+8

अनिवार्य लिंक: http://en.wikipedia.org/wiki/Ajax_(programming) –

+0

जवाब के लिए कृपया लिंक पर जाएँ: http://www.w3schools.com/php/php_ajax_intro। एएसपी –

उत्तर

1

जो AJAX है। आप जावास्क्रिप्ट के बिना AJAX का उपयोग नहीं कर सकते हैं। उपयोग के विचार को प्राप्त करने के लिए आपको jquery और प्रोटोटाइप उदाहरणों को देखना चाहिए।

+0

कुछ स्रोतों के अनुसार, आप वीबीस्क्रिप्ट के साथ AJAX कर सकते हैं। हालांकि, ऐसा करने का कोई अच्छा कारण नहीं है। :-) – Nosredna

+0

नहीं, आप नहीं कर सकते। आप वीबीस्क्रिप्ट के साथ AVAX कर सकते हैं। –

+6

हे। मैंने सुना है कि AJAX असीमित जावास्क्रिप्ट और एक्सएमएल है। सिवाय इसके कि इसे एसिंक नहीं होना चाहिए, इसे जावास्क्रिप्ट नहीं होना चाहिए, और इसे एक्सएमएल होना जरूरी नहीं है। – Nosredna

0

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

5

AJAX असीमित जावास्क्रिप्ट और एक्सएमएल के लिए खड़ा है। AJAX पूरे पृष्ठ को सर्वर पर वापस पोस्ट किए बिना पृष्ठों पर आंशिक अपडेट का समर्थन करता है।

AJAX के लिए बहुत सारे विकल्प हैं। दो सबसे उल्लेखनीय (तर्कसंगत) माइक्रोसॉफ्ट के एएसपी.NET AJAX (पूर्व में एटलस) और jQuery हैं।

एएसपी.NET AJAX अपेक्षाकृत आसान है अगर आप पहले ही एएसपी.NET से परिचित हैं। jQuery अच्छा है यदि आप पहले से ही जावास्क्रिप्ट जानते हैं, और आपके पृष्ठ की क्वेरीिंग और अपडेटिंग पर बहुत बारीक नियंत्रण की अनुमति देता है।

HTH

+1

एक्सएमएल, एक्सएचटीएमएल नहीं, है ना? – Nosredna

+0

@ नोसेरेना: हां। – Stardust

17

AJAX के आम तौर पर पूरे पृष्ठ को फिर से लोड के बिना, क्लाइंट सर्वर तक HTTP अनुरोध भेजने और सर्वर की प्रतिक्रिया प्रसंस्करण शामिल है। (अतुल्यकालिक रूप से)।

जावास्क्रिप्ट आम तौर पर प्रस्तुत करता है और सर्वर (पारंपरिक रूप से एक्सएमएल, JSON की तरह अक्सर अन्य कम वर्बोज़ प्रारूपों)

जावास्क्रिप्ट फिर उपयोगकर्ता के दृश्य को अपडेट करें गतिशील पेज डोम अद्यतन कर सकता है से डेटा प्रतिक्रिया प्राप्त करता है।

इस प्रकार 'असुरक्षित जावास्क्रिप्ट और एक्सएमएल'।

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

+0

मुझे यह जवाब पसंद है। @Verrtex आपको केवल XMLHttpRequest के बारे में जानना है। – enguerran

15

AJAX का सार यह है:

आपके पृष्ठों वेब ब्राउज़ करें और अपनी सामग्री को अद्यतन करते हुए उपयोगकर्ता अन्य बातों के कर रहा है कर सकते हैं।

यही है, आपका जावास्क्रिप्ट एसिंक्रोनस जीईटी और POST अनुरोध (आमतौर पर XMLHttpRequest ऑब्जेक्ट के माध्यम से) भेज सकता है, फिर अपने अनुरोध को संशोधित करने के लिए उन अनुरोधों के परिणामों का उपयोग करें (Document Object Model मैनिपुलेशन के माध्यम से)।

+0

कोई भी उदाहरण जिसे आप हाथ से सोच सकते हैं, जहां मैं इसे "अपने आप पर अपडेट कर रहा हूं" कार्रवाई में देख सकता हूं? –

13

अजाक्स पृष्ठ के केवल एक हिस्से को पुनः लोड करने से अधिक है। अजाक्स असीमित जावास्क्रिप्ट और एक्सएमएल के लिए खड़ा है।

आपको आवश्यक अजाक्स का एकमात्र हिस्सा XMLHttpRequest जावास्क्रिप्ट से ऑब्जेक्ट है। आपको इसे अपने एचटीएमएल के छोटे भाग को div या किसी अन्य टैग के रूप में लोड और पुनः लोड करने के लिए उपयोग करना होगा।

example पढ़ें और आप जल्द ही समर्थक होंगे!

<html> 
<body> 

<script type="text/javascript"> 
function ajaxFunction() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else if (window.ActiveXObject) 
    { 
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
else 
    { 
    alert("Your browser does not support XMLHTTP!"); 
    } 
xmlhttp.onreadystatechange=function() 
{ 
if(xmlhttp.readyState==4) 
    { 
    document.myForm.time.value=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","time.asp",true); 
xmlhttp.send(null); 
} 
</script> 

<form name="myForm"> 
Name: <input type="text" name="username" onkeyup="ajaxFunction();" /> 
Time: <input type="text" name="time" /> 
</form> 

</body> 
</html> 
+1

नाम के बावजूद AJAX को XML की आवश्यकता नहीं है, लेकिन शब्द/संक्षिप्त शब्द एक्स में एक्सएक्स एक्सएमएल के लिए खड़ा है क्योंकि ऐतिहासिक रूप से यह सर्वर और क्लाइंट के बीच संवाद करने का तरीका है। – enguerran

109

यदि आप पूरी तरह से AJAX (जो अतुल्यकालिक जावा स्क्रिप्ट और एक्सएमएल के लिए खड़ा है) के लिए नए हैं, विकिपीडिया पर AJAX प्रविष्टि एक अच्छा प्रारंभिक बिंदु है:

तरह DHTML और LAMP, AJAX एक नहीं है खुद में प्रौद्योगिकी, लेकिन प्रौद्योगिकियों का एक समूह। AJAX का उपयोग करता है:

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

आप देख सकते हैं, को देखने के एक शुद्ध तकनीकी बिंदु से, यहाँ वास्तव में कोई नई बात नहीं है। अधिकांश AJAX भागों पहले से ही 1 99 4 (XMLHttpRequest ऑब्जेक्ट के लिए) थे। वास्तविक नवीनता इन भागों का उपयोग एक साथ का उपयोग करना था क्योंकि Google ने GMail (2004) और Google मानचित्र (2005) के साथ किया था। असल में, दोनों साइटों ने AJAX के प्रचार में भारी योगदान दिया।

alt text

:

एक तस्वीर एक हजार शब्दों के बराबर, एक चित्र है कि ग्राहक और दूरदराज के सर्वर के बीच संचार को दिखाता है नीचे है, साथ ही क्लासिक और AJAX द्वारा संचालित अनुप्रयोगों के बीच मतभेद होने के नाते

नारंगी भाग के लिए, आप हाथ से सबकुछ कर सकते हैं (XMLHttpRequest ऑब्जेक्ट के साथ) या आप jQuery, Prototype, YUI आदि जैसे प्रसिद्ध जावास्क्रिप्ट पुस्तकालयों का उपयोग अपने आवेदन के क्लाइंट-साइड को "AJAXify" करने के लिए कर सकते हैं।इस तरह के पुस्तकालयों का लक्ष्य जावास्क्रिप्ट विकास की जटिलता को छिपाना है (उदाहरण के लिए क्रॉस-ब्राउज़र संगतता), लेकिन एक साधारण सुविधा के लिए अधिक हो सकता है।

सर्वर साइड पर, कुछ व्यवस्थाएं भी मदद कर सकते हैं (उदाहरण के लिए DWR या RAJAX आप जावा उपयोग कर रहे हैं), लेकिन तुम सब करने की जरूरत है मूल रूप से है एक सेवा है जो केवल आवश्यक जानकारियां आंशिक रूप से पेज अद्यतन करने के लिए देता है बेनकाब करने के लिए (शुरुआत में एक्सएमएल/एक्सएचटीएमएल - एक्सएक्स में एक्स - लेकिन JSON अक्सर आजकल पसंद किया जाता है)।

1

आप रुचि रखते हैं, आईबीएम एक 10 (संभवतः अधिक) हिस्सा अजाक्स पर श्रृंखला है: (! भले ही आप बस पहले भाग पढ़ें) Mastering Ajax part 1

वर्ष अब यह एक अच्छा परिचय है, कुछ साल हालांकि

मुझे लगता है कि पूरी श्रृंखला Here सूचीबद्ध किया जाना चाहिए, हालांकि साइट इस समय मेरे लिए थोड़ा धीमा किया जा रहा है ...

सारांश:

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

संबंधित मुद्दे