$ .Ajax () और $ .get () और $ .load () के बीच अंतर


जवाबों:


241

$.ajax()सबसे कॉन्फ़िगर करने योग्य एक है, जहां आपको HTTP हेडर और इस तरह का बढ़िया अनाज प्राप्त होता है। आप इस विधि का उपयोग करके XHR- ऑब्जेक्ट तक सीधी पहुँच प्राप्त करने में सक्षम हैं। थोड़ी अधिक बारीक-बारीक त्रुटि-हैंडलिंग भी प्रदान की जाती है। इसलिए अधिक जटिल और अक्सर आवश्यक हो सकता है, लेकिन कभी-कभी बहुत उपयोगी होता है। आपको कॉलबैक के साथ खुद को लौटाए गए डेटा से निपटना होगा।

$.get()के लिए बस एक आशुलिपि है, $.ajax()लेकिन कुछ विन्यासों को दूर कर देता है, जो आपके द्वारा छुपाए जाने के लिए उचित डिफ़ॉल्ट मान सेट करता है। कॉलबैक पर डेटा लौटाता है। यह केवल GST- अनुरोधों की अनुमति देता है ताकि $.post()POST के लिए केवल समान अमूर्तता के लिए कार्य हो

.load()समान है, $.get()लेकिन कार्यक्षमता को जोड़ता है जो आपको यह परिभाषित करने की अनुमति देता है कि दस्तावेज़ में कहाँ लौटाया गया डेटा डाला जाना है। इसलिए वास्तव में केवल प्रयोग करने योग्य जब कॉल केवल HTML में परिणाम होगा। इसे अन्य, वैश्विक, कॉल की तुलना में थोड़ा अलग कहा जाता है, क्योंकि यह एक विशेष jQuery लिपटे DOM तत्व से बंधा हुआ तरीका है। इसलिए, एक करना होगा:$('#divWantingContent').load(...)

ऐसा लगता है कि सभी $.get(), $.post(), .load()के लिए सब सिर्फ रैपर हैं $.ajax()के रूप में यह आंतरिक रूप से कहा जाता है।

JQuery के अजाक्स-प्रलेखन में अधिक विवरण: http://api.jquery.com/category/ajax/


3
@UzairAli नहीं, यह शाब्दिक रूप से आपके पास जाने वाले चरों को लेता है और उन्हें jQuery.ajax ()
lisburnite

1
महान, .लोड () सिर्फ सादा HTML है और .get () अधिक चीजों के लिए उपयोगी है।
लुइगी लोपेज

30

तरीके अमूर्तता की विभिन्न परतें प्रदान करते हैं।

  • $.ajax()आपको अजाक्स अनुरोध पर पूर्ण नियंत्रण देता है। यदि अन्य विधियाँ आपकी आवश्यकताओं की पूर्ति नहीं करती हैं तो आपको इसका उपयोग करना चाहिए।

  • $.get()एक अजाक्स GETअनुरोध निष्पादित करता है । लौटा डेटा (जो कोई भी डेटा हो सकता है) आपके कॉलबैक हैंडलर को दिया जाएगा।

  • $(selector).load()एक अजाक्स GETअनुरोध निष्पादित करेगा और चयनित डेटा की सामग्री को सेट करेगा (जो पाठ या HTML होना चाहिए)।

यह स्थिति पर निर्भर करता है कि आपको किस विधि का उपयोग करना चाहिए। यदि आप साधारण सामान करना चाहते हैं, तो परेशान होने की कोई जरूरत नहीं है $.ajax()

जैसे आप उपयोग नहीं करेंगे $.load(), अगर लौटा डेटा JSON होगा जिसे आगे संसाधित करने की आवश्यकता है। यहाँ आप या तो प्रयोग करेंगे $.ajax()या $.get()


9

http://api.jquery.com/jQuery.ajax/

jQuery.ajax()

विवरण: एक एसिंक्रोनस HTTP (Ajax) अनुरोध करें।

पूर्ण मोंटी, आपको किसी भी तरह का अजाक्स अनुरोध करने देता है।


http://api.jquery.com/jQuery.get/

jQuery.get()

विवरण: HTTP GET अनुरोध का उपयोग कर सर्वर से डेटा लोड करें।

केवल आपको HTTP GET अनुरोध करने देता है, थोड़ा कम कॉन्फ़िगरेशन की आवश्यकता होती है।


http://api.jquery.com/load/

.load()

विवरण: सर्वर से डेटा लोड करें और मिलान किए गए तत्व में HTML लौटाएं।

डेटा प्राप्त करने और इसे एक तत्व में इंजेक्ट करने के लिए विशिष्ट।


8

बहुत बुनियादी लेकिन

  • $.load(): Html का एक टुकड़ा एक कंटेनर DOM में लोड करें।
  • $.get(): यदि आप GET कॉल करना चाहते हैं और प्रतिक्रिया के साथ बड़े पैमाने पर खेलना चाहते हैं तो इसका उपयोग करें ।
  • $.post(): यदि आप POST कॉल करना चाहते हैं तो इसका उपयोग करें और कुछ कंटेनर DOM की प्रतिक्रिया लोड नहीं करना चाहते हैं।
  • $.ajax()यदि XHR विफल होने पर आपको कुछ करने की आवश्यकता होती है, तो इसका उपयोग करें, या आपको फ्लाई पर अजाक्स विकल्प (जैसे कैश: सच) निर्दिष्ट करने की आवश्यकता है।

5

महत्वपूर्ण सूचना: डेटा पैरामीटर की आपूर्ति होने पर jQuery.load () विधि न केवल GET बल्कि POST अनुरोध भी कर सकती है (देखें: http://api.jquery.com/load/ )

डेटा प्रकार: PlainObject या स्ट्रिंग एक सादा वस्तु या स्ट्रिंग जो अनुरोध के साथ सर्वर को भेजी जाती है।

अनुरोध विधि यदि डेटा को ऑब्जेक्ट के रूप में प्रदान किया जाता है तो POST विधि का उपयोग किया जाता है; अन्यथा, GET मान लिया गया है।

Example: pass arrays of data to the server (POST request)
$( "#objectID" ).load( "test.php", { "choices[]": [ "Jon", "Susan" ] } );

3

सभी को यह अधिकार है। फ़ंक्शंस .load, .getऔर .post, फ़ंक्शन का उपयोग करने के विभिन्न तरीके हैं .ajax

व्यक्तिगत रूप से, मुझे .ajax कच्चे फ़ंक्शन बहुत भ्रामक लगता है, और मुझे इसकी आवश्यकता के अनुसार लोड, प्राप्त या पोस्ट का उपयोग करना पसंद है।

POST में निम्नलिखित संरचना है:

$.post(target, post_data, function(response) { });

GET के निम्नलिखित हैं:

$.get(target, post_data, function(response) { });

लोड निम्नलिखित है:

$(*selector*).load(target, post_data, function(response) { });

जैसा कि आप देख सकते हैं, उनके बीच बहुत कम अंतर हैं, क्योंकि इसकी स्थिति यह निर्धारित करती है कि किसका उपयोग करना है। आंतरिक रूप से फ़ाइल को जानकारी भेजने की आवश्यकता है? .Post का उपयोग करें (यह अधिकांश मामलों में होगा)। इस तरह से जानकारी भेजने की आवश्यकता है कि क्या आप विशिष्ट क्षण के लिए एक लिंक प्रदान कर सकते हैं? .Get का उपयोग करें। दोनों ही एक कॉलबैक की अनुमति देते हैं जहां आप फ़ाइलों की प्रतिक्रिया को संभाल सकते हैं।

एक महत्वपूर्ण नोट यह है कि। लोड दो अलग-अलग शिष्टाचारों में कार्य करता है। यदि आप केवल लक्ष्य दस्तावेज़ का url प्रदान करते हैं, तो यह एक प्राप्त करने के रूप में कार्य करेगा (और मैं कहता हूं कि क्योंकि मैंने $_POSTडिफ़ॉल्ट .लोड व्यवहार का उपयोग करते हुए PHP में जाँच की है और यह पता लगाता है $_POST, नहीं $_GET; शायद यह अधिक सटीक होगा; यह किसी भी तर्क के बिना .post के रूप में कार्य करता है); हालाँकि, http://api.jquery.com/load/ के रूप मेंकहते हैं, एक बार जब आप फ़ंक्शन को एक तर्क प्रदान करते हैं, तो यह फ़ाइल की जानकारी पोस्ट कर देगा। जो भी मामला है, .लोड फ़ंक्शन सीधे एक DOM तत्व में जानकारी सम्मिलित करेगा, जो MANY मामलों में बहुत सुपाठ्य है, और बहुत ही प्रत्यक्ष है; लेकिन फिर भी यदि आप प्रतिक्रिया के साथ कुछ और करना चाहते हैं तो कॉलबैक प्रदान करता है। इसके अतिरिक्त, .लोड आपको एक फ़ाइल से कोड का एक निश्चित ब्लॉक निकालने की अनुमति देता है, जिससे आपको कैटलॉग को सहेजने की संभावना मिलती है, उदाहरण के लिए, एक html फ़ाइल में, और इसे (आइटम) के टुकड़े सीधे DOM तत्वों में पुनः प्राप्त करते हैं।


3
$.get = $.ajax({type: 'GET'});

$.load() एक सहायक कार्य है जिसे केवल तत्वों पर ही लागू किया जा सकता है।

$.ajax()आपको सबसे अधिक नियंत्रण देता है। आप यह निर्दिष्ट कर सकते हैं कि क्या आप POST डेटा, अधिक कॉलबैक आदि प्राप्त करना चाहते हैं।


1

दोनों का उपयोग कुछ डेटा भेजने और उस डेटा का उपयोग करके कुछ प्रतिक्रिया प्राप्त करने के लिए किया जाता है।

प्राप्त करें : सर्वर में संग्रहीत जानकारी प्राप्त करें। (यानी खोज, ट्वीट, व्यक्ति जानकारी)। यदि आप सूचना भेजना चाहते हैं तो अनुरोध भेजें अनुरोध का उपयोग करें process.php?name=subrotoतो यह मूल रूप से url के माध्यम से जानकारी भेजता है। Url 2036 char से अधिक नहीं संभाल सकता। तो ब्लॉग पोस्ट के लिए क्या आपको याद है कि यह संभव नहीं है?

POST : GET की तरह ही पोस्ट करें। उपयोगकर्ता पंजीकरण, उपयोगकर्ता लॉगिन, बड़ा डेटा भेजना, ब्लॉग पोस्ट। यदि आपको सुरक्षित जानकारी भेजने की आवश्यकता है, तो पोस्ट का उपयोग करें या बड़े डेटा के लिए क्योंकि यह यूआरएल के माध्यम से नहीं जाता है।

AJAX : $.get()और $.post()इसमें ऐसी विशेषताएं हैं जो सबसेट हैं $.ajax()। इसका विन्यास अधिक है।

$.get ()विधि, जो के लिए एक तरह का आशुलिपि है $.ajax()। उपयोग करते समय $.get (), किसी ऑब्जेक्ट में पास होने के बजाय, आप तर्कों में पास होते हैं। कम से कम, आपको पहले दो तर्कों की आवश्यकता होगी, जो उस फ़ाइल का URL है जिसे आप पुनर्प्राप्त करना चाहते हैं (जैसे। test.txt) और एक सफलता कॉलबैक।


0

सभी ने विषय को बहुत अच्छे से समझाया। एक और बिंदु है जो मैं .load () विधि के बारे में जोड़ना चाहूंगा।

लोड दस्तावेज़ के अनुसार यदि आप डेटा यूआरएल में प्रत्यय चयनकर्ता जोड़ते हैं तो यह लोडिंग सामग्री में स्क्रिप्ट निष्पादित नहीं करेगा।

वर्किंग प्लंकर

            $(document).ready(function(){
                $("#secondPage").load("mySecondHtmlPage.html #content");
            })

दूसरी ओर, यूआरएल में चयनकर्ता को हटाने के बाद, नई सामग्री में स्क्रिप्ट चलेंगी। इस उदाहरण का प्रयास करें

index.html file में url में #content निकालने के बाद

            $(document).ready(function(){
                $("#secondPage").load("mySecondHtmlPage.html");
            })

चर्चा में अन्य तरीकों द्वारा प्रदान की गई ऐसी कोई अंतर्निहित सुविधा नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.