2009-05-17 11 views
10

मैं AJAX के लिए नया हूं, लेकिन एक सिंहावलोकन के रूप में मैं जानना चाहता हूं कि आप कौन से प्रारूप अपलोड और डाउनलोड कर सकते हैं। क्या यह JSON या XML तक सीमित है या आप एमपी 3 या यूटीएफ -8 एचटीएमएल जैसे बाइनरी प्रकार भी भेज सकते हैं। और आखिरकार, क्या आपके पास बाइट सरणी की तरह कुछ बाइट के लिए डेटा, बाइट पर पूर्ण नियंत्रण है, या केवल एक स्ट्रिंग भेजा/प्राप्त है।AJAX स्थानांतरण कौन से डेटा प्रारूप कर सकते हैं?

+0

क्या आप ब्राउज़र से अलग वातावरण के बारे में बात करते हैं? –

+0

संख्या नियमित ब्राउज़र। –

उत्तर

4

अगर हम AJAX के बारे में बात कर रहे हैं तो हम जावास्क्रिप्ट के बारे में बात कर रहे हैं? और XMLHTTPRequest के बारे में?

XMLHttpRequest जो केवल एक http अनुरोध है, सबकुछ स्थानांतरित कर सकता है। लेकिन जावास्क्रिप्ट में कोई बाइट सरणी नहीं है। केवल तार, संख्याएं और ऐसे। एजेक्स कॉल से आपको जो भी चीज मिलती है वह पाठ का एक टुकड़ा है (प्रतिक्रिया पाठ)। इसे एक्सएमएल में पार्स किया जा सकता है (जो आपको reponseXML देता है)। विशेष एन्कोडिंग http परिवहन की बात होनी चाहिए।

बाइनरी सामान AJAX निर्भर नहीं है लेकिन जावास्क्रिप्ट निर्भर है। जावास्क्रिप्ट (विशेष रूप से छवियों के लिए) में बाइट डेटा वितरित करने के लिए तारों के लिए कुछ अजीब एन्कोडिंग हैं लेकिन यह एक सामान्य समाधान नहीं है।

एचटीएमएल कोई समस्या नहीं है और यह सबसे प्रमुख उपयोग मामला है। इस प्रकार के अनुरोध से आपको एक HTML स्ट्रिंग वितरित हो जाती है और इसे HTML में पार्स करने वाले डीओएम में कुछ नोड में जोड़ा जाता है।

1

आप डेटा या तो स्ट्रिंग या बाइट्स की किसी भी प्रकार के हस्तांतरण कर सकते हैं

+0

जावास्क्रिप्ट में बाइनरी डेटा का उत्पादन/उपभोग कैसे करते हैं? –

+0

शायद आप एक स्ट्रिंग के भीतर किसी विशेष char के ASCII कोड (मुझे लगता है) प्राप्त करने के लिए String.charCodeAt (अनुक्रमणिका) का उपयोग कर सकते हैं। –

1

आप आप की तरह कुछ भी भेज सकते हैं, समस्या यह कैसे संभाल करने के लिए एक बार आप इसे प्राप्त किया जा सकता है;)

मानक HTML शायद सबसे है वहां उपयोग में सामान्य प्रकार की AJAX सामग्री - आप चरित्र एन्कोडिंग भी चुन सकते हैं, हालांकि एक प्रकार के एन्कोडिंग के साथ रहना हमेशा सर्वोत्तम होता है।

0

आप HTTP पर भेजे जा सकने वाले किसी भी चीज़ को स्थानांतरित कर सकते हैं। उसी डोमेन पर कॉल किए जाने वाले पृष्ठ के बारे में प्रतिबंध हैं, जो पृष्ठ से लोड किए गए हैं, लेकिन हस्तांतरण की सामग्री पर नहीं। आप या तो जीईटी या पोस्ट लेनदेन भी कर सकते हैं।

2

चूंकि डेटा HTTP के माध्यम से पहुंचाया जाता है, इसलिए आपको यह सुनिश्चित करना होगा कि आप किसी प्रकार के एन्कोडिंग का उपयोग करें। सबसे लोकप्रिय में से एक बेस 64 एन्कोडिंग है। आप अधिक जानकारी प्राप्त कर सकते हैं: http://www.webtoolkit.info/javascript-base64.html

पद्धति उस डेटा को 64-एन्कोड करना है जिसे आप भेजना चाहते हैं और फिर सर्वर (या क्लाइंट) पर डेटा 64-डीकोड करें और मूल डेटा का उपयोग करें जैसा आप चाहते हैं।

1

AJAX का अर्थ है कि आप जावास्क्रिप्ट कॉल के साथ HTTP पर डेटा को अतुल्य रूप से स्थानांतरित कर रहे हैं। इसलिए आपकी स्क्रिप्ट XmlHttpRequest() ऑब्जेक्ट का उपयोग करके "सामान्य" HTTP अनुरोध बनाती है। हालांकि, जैसा कि नाम का तात्पर्य है, यह वास्तव में टेक्स्ट-आधारित डेटा प्रारूपों के लिए उपयुक्त है क्योंकि आप आम तौर पर सर्वर से वापस प्राप्त डेटा के साथ क्लाइंट पक्ष पर कुछ कार्रवाई करना चाहते हैं (हमेशा नहीं, कभी-कभी लोग केवल XmlHttpRequests को भेजते हैं सर्वर पर कुछ अपडेट करें)।

एक तरफ ध्यान दें, मैंने कभी ऐसा एप्लिकेशन नहीं देखा है जहां बाइनरी डेटा भेजना उचित होगा।

अक्सर, लोग पोस्ट के साथ सर्वर से पर डेटा भेजने या प्राप्त (जो मूल रूप से HTTP के लिए निहित नाम-मान युग्म हस्तांतरण करने के लिए एक विधि है) का चयन करें। अधिक जटिल डेटा भेजने के लिए, उदाहरण के लिए पदानुक्रमित संरचनाओं, उन्हें किसी भी तरह एन्कोड करने की आवश्यकता है।एक्सएमएल दस्तावेजों को जावास्क्रिप्ट प्रति मूल रूप से बनाया जा सकता है, सर्वर पर भेजा जाता है और आवश्यक डेटा प्रकारों में पार्स किया जाता है। लेकिन चूंकि एक्सएमएल दर्द का थोड़ा सा हो सकता है, इसलिए कई देव जेएसओएन एन्कोडेड डेटा का उपयोग करते हैं क्योंकि इसे उत्पन्न करना आसान है और पार्स करना आसान है।

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

स्टार्टर्स के लिए, मेरा सुझाव है कि आपको JQuery पर एक नज़र डालें। यह एक बहुत ही हल्का ढांचा है जो कई बुरी संगतता सामग्री को सारणीबद्ध करता है और आपको AJAX अनुरोधों को बहुत अच्छी तरह से लिखने देता है।

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