2009-09-29 14 views
8

मुख्य रूप से एक सर्वर साइड प्रोग्रामर (ASP.NET WebForms) मैं Microsoft AJAX के नियंत्रण में UpdatePanels का उपयोग कर के "बाकी-सब" दृष्टिकोण के बाहर मेरे मन AJAX के चारों ओर लिपटा पाने के लिए कोशिश कर रहा हूँ किया गया है। मेरे प्रश्न में कुछ भाग हैं:समझौता AJAX

  1. क्या जावास्क्रिप्ट क्लाइंट-साइड स्क्रिप्टिंग के लिए एकमात्र विकल्प है जो सर्वर-साइड संचार का समर्थन करेगा? यदि नहीं तो विकल्प क्या हैं।
  2. AJAX एप्लिकेशन का "सामान्य" आर्किटेक्चर क्या है? क्या यह बस जावास्क्रिप्ट (क्लाइंट-साइड स्क्रिप्ट) सर्वर-साइड संसाधनों (वेब ​​सेवाओं के माध्यम से खुला डेटा/रिमोट कार्यक्षमता) के साथ बातचीत कर रहा है? मुझे पता है कि ये सरल प्रश्नों की तरह लग सकते हैं लेकिन जावास्क्रिप्ट की "बारीकियों" को देखते हुए AJAX अभी भी मुझे "काला जादू" जैसा लगता है। धन्यवाद!

उत्तर

8

यहाँ संक्षिप्त और आकर्षक संस्करण है।

  1. नहीं, लेकिन यह वास्तव में एकमात्र भाषा है जो ब्राउज़र की एक विस्तृत श्रृंखला में समर्थित है। यदि आप केवल आईई के बारे में परवाह करते हैं तो आप वीबीस्क्रिप्ट का उपयोग कर सकते हैं, लेकिन यह जेएस का उपयोग करने और व्यापक समर्थन पाने के लिए कोई अतिरिक्त प्रयास नहीं है, इसलिए हर कोई जेएस का उपयोग करता है।

  2. AJAX उतना जटिल नहीं है जितना लगता है। संक्षेप में यह क्लाइंट साइड कोड है जो XMLHttpRequest ऑब्जेक्ट का उपयोग कर वेब सर्वर से पूछे जाने वाले डेटा के आधार पर वर्तमान पृष्ठ के लेआउट या सामग्री को संशोधित करने के लिए ब्राउज़र में चलता है।

सबसे जटिल हिस्सा अलग वाक्य रचना/विभिन्न ब्राउज़रों के व्यवहार, जिसके कारण ज्यादातर लोगों एक रूपरेखा है कि इस बात का सबसे दूर सार का उपयोग के साथ काम कर रहा है।

यहाँ AJAX का उपयोग कर एक सरल "नमस्ते दुनिया" स्क्रिप्ट है:

<script type="text/javascript"> 
var http = createRequestObject(); 
function createRequestObject() { 
    var objAjax; 
    var browser = navigator.appName; 
    if(browser == "Microsoft Internet Explorer"){ 
     objAjax = new ActiveXObject("Microsoft.XMLHTTP"); 
    }else{ 
     objAjax = new XMLHttpRequest(); 
    } 
    return objAjax; 
} 

function getNewContent(){ 
http.open('get','newcontent.txt'); 
http.onreadystatechange = updateNewContent; 
http.send(null); 
return false; 
} 

function updateNewContent(){ 
if(http.readyState == 4){ 
document.getElementById('mySentence').innerHTML = http.responseText; 
} 
} 
</script> 

स्रोत: http://www.openhosting.co.uk/articles/webdev/5899/

अंतिम जटिलता क्या आप सर्वर से वापस है कि एक उचित रूप में मिल को पार्स है कोड के साथ सौदा कर सकते हैं। सबसे आम optons हैं:

  • JSON: आसानी जावास्क्रिप्ट के EVAL फंक्शन का उपयोग करके वस्तुओं में पार्स करता है। कई विशेषताओं वाले एक इकाई के बारे में वापस जानकारी खींचने के लिए अच्छा है।

  • एक्सएमएल: कुछ हद तक आसानी से डोम जे एस में निर्मित तरीकों का उपयोग कर पार्स करता है, लेकिन JSON तुलना में अधिक जटिल। यदि आपको बहुत अधिक नियंत्रण की आवश्यकता है या XSLT परिवर्तन करना चाहते हैं, तो यह एक सभ्य विकल्प है। सिद्धांत रूप में इसे थोड़ा सुरक्षित माना जा सकता है क्योंकि इसे ईवीएएल में मनमाने ढंग से तारों की आवश्यकता नहीं होती है जो क्लाइंट पर दुर्भावनापूर्ण कोड निष्पादित कर सकती है, लेकिन यह बहस योग्य है।

  • असंरचित पाठ: आप बस एक ही मूल्य वापस चाहते हैं, अन्य दो तरीकों overkill का एक सा हो सकता है।

+2

हाँ, मेरे निबंध से यह सब कुछ बेहतर है, धन्यवाद जॉन :) – jakeisonline

2

AJAX आमतौर पर इंटरचेंज है, यदि आप चाहें तो रनर, क्लाइंट-साइड और सर्वर-साइड के बीच डेटा और निश्चित रूप से वीजा-विपरीत।

एजेक्स का अग्रिम ओपन सोर्स, "सोशल" वेब के उदय और शौकिया और पेशेवर दोनों डेवलपर्स के तेजी से बढ़ते नेटवर्क के साथ हाथ में आया है। यह बदले में कई जावास्क्रिप्ट फ़्रेमवर्क के विकास (jQuery, Prototype, Mootools, Glow आदि) जो अनिवार्य रूप से निकालने के लिए, या कम से कम बहुत अच्छी तरह से नकाब छिड़ गया है, उन "बारीकियों" आप का उल्लेख किया।

AJAX बस एक क्लाइंट-साइड स्क्रिप्ट नहीं है जो सर्वर-साइड स्क्रिप्ट के साथ बातचीत कर रहा है। XHTML और प्रस्तुति के लिए सीएसएस, के गतिशील प्रदर्शन और आदान-प्रदान के लिए डेटा, XML और XSLT (और हाल ही में JSON) के साथ बातचीत, और हेरफेर और प्रदर्शन, के लिए दस्तावेज़ ऑब्जेक्ट मॉडल डेटा के क्रमश: अतुल्यकालिक संचार के लिए XMLHttpRequest ऑब्जेक्ट और फिर आखिरकार इन तकनीकों को एक साथ लाने के लिए जावास्क्रिप्ट (wikipedia)।

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

आशा मैं बहुत अधिक वफ़ल नहीं किया था, आप से पूछा;)

-1

जावास्क्रिप्ट विकल्प VBScript (अगर मैं एक ही नाम और सावधान रहना यह एमएस तकनीक है और केवल IE के साथ काम करता है), लेकिन व्यावहारिक रूप से बोल रहा जावास्क्रिप्ट सार्वभौमिक है करने के लिए है क्लाइंट साइड स्क्रिप्टिंग के लिए स्वीकार्य समाधान।

अजाक्स के लिए नीचे दिए गए अतः देखें विचार विमर्श:

2

जावास्क्रिप्ट क्लाइंट-साइड स्क्रिप्टिंग कि होगा समर्थन सर्वर साइड संचार के लिए एकमात्र विकल्प है? यदि विकल्प नहीं हैं तो क्या विकल्प हैं।

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

का "सामान्य" आर्किटेक्चर एक AJAX एप्लिकेशन क्या है? क्या यह बस जावास्क्रिप्ट (क्लाइंट-साइड स्क्रिप्ट) सर्वर-साइड संसाधनों (डेटा/रिमोट कार्यक्षमता वेब सेवाओं के माध्यम से खुलासा) के साथ बातचीत कर रहा है?

यह बिल्कुल सही है। वेब सेवाएं या जेनेरिक हैंडलर जेएसओएन या एक्सएमएल प्रारूप में आवश्यक डेटा की सेवा करते हैं, जिनमें से दोनों आसानी से जावास्क्रिप्ट के साथ संसाधित हो सकते हैं।

मेरी राय में, एजेक्स के बारे में बात जो अधिकांश एएसपी.नेट वेब फॉर्म डेवलपर्स को फिसलती है वह असीमित पहलू है।

+0

क्या आप "असीमित पहलू" पर अधिक विस्तार कर सकते हैं? – Achilles

0

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

यह Wikipedia से है:

DHTML और LAMP की तरह

, AJAX अपने आप में एक प्रौद्योगिकी, लेकिन प्रौद्योगिकियों के एक समूह नहीं है। AJAX के संयोजन का उपयोग करता है:

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