2009-02-05 15 views
5

मैं अजाक्स पर पढ़ रहा हूं और अगर मैं सब ठीक से समझ रहा हूं तो स्टैक ओवरफ्लो समुदाय से देखना चाहूंगा।क्या मैं अजाक्स को सही ढंग से समझता हूं?

तो सामान्य क्लाइंट सर्वर इंटरैक्शन एक उपयोगकर्ता यूआरएल में एक वेब ब्राउज़र प्रकार खींचता है और वेब सर्वर से पृष्ठ और संसाधन (सीएसएस, चित्र) का अनुरोध करने वाले सर्वर पर एक HTTP अनुरोध भेजा जाता है। वेब सर्वर क्लाइंट को पृष्ठ/संसाधनों के HTTP के माध्यम से प्रतिक्रिया देता है और ब्राउजर पृष्ठ को देखने के लिए उपयोगकर्ता के लिए एचटीएमएल/जावास्क्रिप्ट प्रस्तुत करता है।

1) तो क्या यह कहना सुरक्षित होगा कि XMLHttpRequest (XHR) ऑब्जेक्ट ब्राउज़र के समान प्रक्रिया कर रहा है, सिवाय इसके कि आप सर्वर से एचटीएमएल का अनुरोध नहीं कर रहे हैं, आपके अनुरोध टेक्स्ट को किसी प्रकार के प्रारूप में?

2) क्या यह सच है कि एक एक्सएचआर ऑब्जेक्ट एक नियमित ऑब्जेक्ट की तरह है जिसे ऑब्जेक्ट (सामान्य ऑब्जेक्ट की तरह) बनाने वाले कार्यक्रम द्वारा छेड़छाड़ की जा सकती है, लेकिन यह किसी अन्य प्रोग्राम (वेब ​​सर्वर) के साथ डेटा भेजती है और प्राप्त करती है एचटीटीपी?

3) तो मेरे दिमाग में जब एक एक्सएचआर बनाया जाता है तो यह स्मृति में लोड होता है और जब हम अनुरोध करते हैं तो हम कुछ ऑब्जेक्ट्स तर्क सेट करते हैं। ओपन ("प्राप्त करें", यूआरएल, सच)। एक बार जब हम request.send (null) करते हैं तो ऑब्जेक्ट मूल रूप से HTTP के माध्यम से यूआरएल "GET" करने का प्रयास करता है और एक बार जब हम सर्वर से डेटा वापस ले लेते हैं तो इसे प्रतिक्रिया टेक्स्ट में डाल दिया जाता है। क्या मुझे ये ठीक तरह से समझ आ रहा है?

4) सिंक्रोनस बनाम एसिंक्रोनस। जब मैं तुल्यकालिक सोचता हूं तो मुझे लगता है कि क्रम में पालन किए जाने वाले कदमों के बारे में सोचते हैं। उदाहरण के लिए, मैं एक बटन दबाता हूं, डेटा सर्वर पर भेजा जाता है, और मुझे कुछ और करने से पहले डेटा वापस आने के लिए इंतजार करना पड़ता है। एसिंक्रोनस कनेक्शन के साथ मैं बटन दबाऊंगा, डेटा सर्वर पर भेजा जाता है, मैं जो भी चाहता हूं वह डेटा करता है जबकि डेटा वापस भेजा जाता है। क्या यह एक अच्छा सादृश्य है?

उत्तर

7

1) नहीं। XMLHttpRequest ऑब्जेक्ट वास्तव में इसका नाम बताता है - यह एक HTTP अनुरोध शुरू करता है। यह अनुरोध एक्सएमएल, या एचटीएमएल, या PHP में हो सकता है। दिन के अंत में, ब्राउज़र परवाह नहीं है, क्योंकि AJAX अनुरोध में, यह अनुरोध को पार्स नहीं करता है - आपको इसे स्वयं करना है। इसलिए यह स्वचालित रूप से HTML को AJAX अनुरोध से प्रस्तुत नहीं करता है।

2) मुझे मैनिपुलेशन के बारे में निश्चित नहीं है (एक्सएचआर ऑब्जेक्ट अपरिवर्तनीय हो सकता है) लेकिन संभवतः। क्या आपको कभी इसे विस्तारित करने या इसे कुशल बनाने की आवश्यकता होगी? हां, आप ऑब्जेक्ट के गुणों को बदल सकते हैं और इसी तरह। मैं क्षमाप्रार्थी हूं। मैं आपको पहले समझ में नहीं आया :)

3) हाँ।

4) यह एक महान सादृश्य है। यह ठीक है क्या होता है। एक और समानता एक 4 लेन राजमार्ग है जो एक-तरफा सड़क के रूप में सिंक्रोनस के रूप में असीमित है। यदि एक कार 4 लेन राजमार्ग पर टूट जाती है, तो बाकी अपनी सामान्य गति से आगे बढ़ते रह सकते हैं - लेकिन अगर कोई एक तरफ सड़क पर टूट जाता है, तो सब कुछ जम जाता है। :)

+0

मैं एक्सएचआर सिर्फ मतलब सेट गुण और वस्तु पर कॉल तरीकों में हेरफेर लगता है। – andynormancx

+0

मैंने देखा है कि एक तरफा सड़कों बहु-लेन हैं ... :) –

0

ऐसा प्रतीत होता है कि आपके पास एजेक्स कैसे काम करता है इस बारे में एक नौकरी है। मैं AJAX एप्लिकेशन की नलसाजी के आपके सारांश में असहमत होने के लिए बहुत कुछ नहीं देख सकता।

मैं कहूंगा कि XMLHttpRequest ऑब्जेक्ट के साथ आप GET तक सीमित नहीं हैं। आप POST और अन्य HTTP क्रियाओं का भी उपयोग कर सकते हैं।

एसिंक कॉल के साथ आप कॉलबैक फ़ंक्शन पंजीकृत करते हैं, तो XMLHttpRequest ऑब्जेक्ट आपकी विधि को कॉल करता है जब async अनुरोध पूर्ण होता है।

0

मुझे ठीक लगता है।

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

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