2009-08-27 21 views
36

चलो कहते हैं कि मैं एक PHP स्क्रिप्ट निष्पादित करने के लिए चाहते हैं। किस तरह से बेहतर है?jQuery ajax() बनाम प्राप्त()/पोस्ट()

यह:

$.ajax({ 
    type: "GET", 
    url: "php-script.php", 
    dataType: "script" 
}); 

या इस:

$.get("php-script.php", function(data) { }); 
+0

स्क्रिप्ट के प्रभाव क्या हैं? –

उत्तर

29

इस मामले में, मैं $.get कहेंगे, के रूप में यह तुरंत स्पष्ट क्या अनुरोध का प्रकार है। किसी भी दर पर, यह बड़े और अधिक विकल्प के लिए सिर्फ शॉर्टेंड है- अगर अजाक्स कॉल, और दोनों के बीच कनवर्ट करना सबसे खराब स्थिति में मामूली है।

आपको लगता है कि आप कल्पना $.ajax विकल्प की आवश्यकता होगी, तो $.ajax का उपयोग करें। आप सुविधा तरीकों jQuery प्रदान करता है, इस तरह के .load, $.get, आदि के रूप में उपयोग नहीं करते हैं तो

22

$.get() बस प्रकार का एक $.ajax() कॉल "GET" के लिए एक शॉर्टकट है।

विस्तृत करने के लिए $.get() पृष्ठभूमि में $.ajax() पर कॉल करें। इसका शॉर्टकट प्रकार $(function(){})$(document).ready(function(){}) है। $.get के लिए सामान्य उपयोग के मामलों को त्वरित और सरल प्राप्त करने के लिए है, $.ajax का उपयोग किया जाना चाहिए यदि आपको कुछ और जटिल करने की आवश्यकता है या आपको अतिरिक्त लचीलापन की आवश्यकता है।

+0

$ .get wraps $ .ajax टाइप = "GET" के साथ। यह सिर्फ एक शॉर्टकट से अधिक है, महत्वपूर्ण अंतर यह है कि आप $ .get का उपयोग कर सर्वर को POST अनुरोध नहीं कर सकते हैं। – karim79

+3

ओह, मैंने सोचा होगा कि स्पष्ट ... मैंने इसे अपडेट किया है क्योंकि आप इसे नहीं सोचते हैं। –

+0

@ डार्को ज़ेड - नहीं, यह आपके उत्तर से स्पष्ट नहीं था, इसलिए मैंने टिप्पणी की - इसे इंगित करने के लिए। हालांकि, आपका अपडेट इसे स्पष्ट करता है। – karim79

1

$.get()/$.post() का समर्थन नहीं करते beforeSend$.ajax() की तरह करता है। इसलिए आप उदाहरण के लिए सीधे लोड करते समय स्पिनर प्रदर्शित नहीं कर सकते हैं। लेकिन आप इसे .ajaxStart() के साथ कर सकते हैं।