मैं उस बिंदु पर आया हूं जहां मुझे अपने पृष्ठ पर अजाक्स की आवश्यकता है, लेकिन यह सिर्फ एक छोटे से हिस्से के लिए है - यह देखने के लिए कि क्या उपयोगकर्ता नाम टाइप किया गया है डेटाबेस में है। जैसा कि समझाया गया है here अजाक्स अकेले जावास्क्रिप्ट के साथ किया जा सकता है। इस तरह से करने के पेशेवर/विपक्ष क्या हैं? मैं इस पर झुका रहा हूं क्योंकि मुझे बड़ी लाइब्रेरी नहीं चाहिए और लगता है कि यह अनावश्यक रूप से जटिल है जब बाकी सब कुछ पहले से ही जावास्क्रिप्ट है।jQuery के बिना अजाक्स करना कितना बुरा है?
उत्तर
कुछ भी नहीं है अंतर अपने पृष्ठ पर 80kb के Jquery.min.js लोड हो रहा है के अलावा अन्य ...
यह बुरा नहीं है, jQuery बस इसे करने के लिए एक शॉर्टकट प्रदान करता है, जबकि इसे लिखते समय मैन्युअल रूप से थोड़ा बड़ा हो जाता है। तो इतना ही है।
तुम सिर्फ एक "ajax सहायक", quirksmode .: http://www.quirksmode.org/js/xmlhttp.html
यह है कि बुरा नहीं है से इस स्निपेट का उपयोग करके देखें ... बस के रूप में छोटा नहीं करना चाहते हैं: Small Ajax JavaScript library के रूप में वहाँ के बारे में बताया, तो आप भी कर सकते थे बस उन छोटे पुस्तकालयों में से एक प्राप्त करें जो अकेले AJAX को संभालते हैं।
संपादित करें: https://gist.github.com/mythz/1334560
यह यदि आप इसे करने के लिए इस्तेमाल कर रहे हैं jQuery वाक्य रचना को लागू करने की है, लेकिन केवल ajax कॉल के लिए, लगता है, यह हो सकता है: के रूप में एमसीएल उसकी टिप्पणी में नीचे बताया, वहाँ भी इस स्निपेट है एक बेहतर विकल्प बनो!
मुझे एक दिलचस्प [AJAX स्टैंडअलोन लाइब्रेरी] मिली (https://gist.github.com/mythz/1334560)। मैंने इसका परीक्षण नहीं किया, लेकिन ऐसा लगता है कि '$ .ajax()' कॉल मूल jQuery वाक्यविन्यास के साथ किए जा सकते हैं। यह उन्हें आसानी से विनिमय करने योग्य बना देगा। – MCL
जो लोग jQuery सिंटैक्स में उपयोग किए जाते हैं, जो शायद एक अच्छा lib होगा, अगर आपको कोई फर्क नहीं पड़ता है तो मैं इसे उत्तर में जोड़ूंगा और टिप्पणी अनुभाग पर इंगित करूंगा। बेशक –
। मैं इस पुस्तकालय के आधार पर विश्वास करता हूं, '$ .post() ',' $ .getJSON() 'आदि जैसे उपयोगिता रैपर जोड़ने में बहुत मुश्किल नहीं है। – MCL
jQuery सिर्फ एक ढांचा है जो हमें AJAX कॉल को अधिक कुशलता से करने की अनुमति देता है। कम कोड इससे कोई फ़र्क नहीं पड़ता कि आप jQuery का उपयोग करते हैं या नहीं। निर्णय लेने के लिए यह पूरी तरह से आप पर निर्भर है। यदि jQuery भारी वजन है तो बस एक लाइब्रेरी का उपयोग करें जहां केवल यह केवल AJAX कार्यक्षमता प्रदान करता है। इसके अलावा आप AJAX कॉल करने के लिए शुद्ध जेएस कर सकते हैं।
मुझे लगता है कि सबसे बड़ा समर्थक यह है कि jQuery AJAX कॉल को संभालने का क्रॉस-ब्राउज़र तरीका हल करता है।
आप IE के पुराने संस्करण का समर्थन करने के जरूरत नहीं है, IE6 की तरह है, तो यह काफी सरल है, तो आप डॉन किसी भी factory function की आवश्यकता नहीं है, बस एक सादा:
var http = new XMLHttpRequest();
सभी ब्राउज़रों के लिए। इसके अलावा, हाल के ब्राउज़रों (मैं IE8 में यह भी मानना है) में, आप और अधिक onreadystate
के बजाय onload
घटनाओं का उपयोग कर को आसान बनाने में कर सकते हैं:
var http = new XMLHttpRequest();
http.open("GET", "somepage.html", true);
http.onload = function() {
alert("Request complete: " + http.responseText);
}
http.send();
यह काफी jQuery के success
हैंडलर के समान है।
अधिक जानकारी के लिए, देखें: Using XMLHttpRequest
हालांकि, jQuery अब ajax है promises के रूप में खतरा कहता है, कि कुछ परिदृश्य (कई ajax के लिए इंतज़ार कर की तरह से पहले खत्म हो कुछ कोड को चलाने के लिए कॉल) बनाता है ज्यादा विकसित करने के लिए आसान।
यह वही है, न ही सबसे खराब नहीं, 100% वही – mikakun
jQuery आपके कोड में अजाक्स कॉल को कम करता है और बाध्यकारी घटनाओं और कई अन्य सामान भी बनाता है। यदि आपको if (IE && संस्करण ... लिखना है, तो हर बार आपका कोड बहुत लंबा होगा। जब आप वास्तव में इसके बहुत से कार्यों का उपयोग करते हैं तो आप स्वयं jQuery का उपयोग कर सकते हैं लेकिन यदि आप केवल एक AJAX कॉल के लिए इसका उपयोग करने की योजना बना रहे हैं तो बेहतर इसका उपयोग न करें। – HMR
यदि आप Google के जैसे सीडीएन से jQuery लोड करते हैं तो आपके पृष्ठ पर आने वाले विज़िटर पहले से ही इसे अन्य वेब पृष्ठों पर जाने से कैश कर चुके हैं। हालांकि jQuery का संपीड़ित संस्करण वास्तव में इतना बड़ा नहीं है , केवल 9 0.5 केबी। –