दिलचस्प पोस्ट
आंशिक रूप से सीआरएल के साथ एक दूरस्थ फ़ाइल डाउनलोड करने के लिए कैसे? कैसे मैं एक बड़े बफ़र बनाने के बिना एक एसक्यूएल सर्वर ब्लॉब में .net ऑब्जेक्ट का एक बड़ा ग्राफ serialize? क्या dereferencing चर के लिए एक बंद है उपयोगी? उन्हें खोलने के बिना लिनक्स पर सभी सीरियल डिवाइस (टीटीआई, टीटीआईएसबी, ..) को कैसे खोजें? org.apache.http.entity.FileEntity को एंड्रॉइड 6 (मार्शमलो) में पदावनत किया गया है मैं वैश्विक रूप से एनपीएम का उपयोग कर एक मॉड्यूल कैसे स्थापित करूं? कैनवास में माउस स्थान प्राप्त करना रूबी में एक फ़ाइल को पढ़ने के सभी सामान्य तरीके क्या हैं? निर्माता प्रतीकों का दोहरी उत्सर्जन लैम्ब्डा के साथ अलग ()? सरणी में अधिकतम और न्यूनतम मान का सूचकांक सारणी बनाने में त्रुटि: आपके क्रम के पास आपके एसक्यूएल सिंटैक्स में एक त्रुटि है (ऑर्डर (ऑर्डर_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id) लाइन 1 सी ++ फ़ंक्शन पॉइंटर (कक्षा सदस्य) गैर-स्थिर सदस्य फ़ंक्शन सफ़ारी, क्रोम, आईई, फ़ायरफ़ॉक्स और ओपेरा ब्राउज़र का पता कैसे लगाया जाता है? ASP.NET MVC नियंत्रक कार्य जो JSON या आंशिक HTML वापस आते हैं

फोन समारोह से एक jquery AJAX कॉलबैक के लिए प्रतीक्षा करें

मैंने इस प्रकार के प्रश्नों के बहुत से उत्तर की समीक्षा की है और अब मैं सबसे अच्छा तरीका के रूप में उलझन में हूं। नवीनतम jquery को देखते हुए, मैं चाहता हूँ

  1. एजेक्स फंक्शन पर कॉल करें
  2. एजेक्स प्रोसेसिंग करें (सफलता या त्रुटि) // काम ठीक है
  3. सफलता या त्रुटि पर स्थिति को आगे की प्रक्रिया के लिए कॉलिंग फ़ंक्शन पर लौटा दें

कॉलिंग फ़ंक्शन (doAjax) में, मैं कॉलबैक के लिए कैसे प्रतीक्षा करता हूं, सफलता या त्रुटि के लिए प्रसंस्करण को पूरा करता हूं (इस मामले में इसकी सफलता से कोई फॉर्म स्पष्ट होता है, त्रुटि के रूप में इसे रखें)

किसी भी सलाह के लिए thx,

कला [संपादित करें] एक टाइपो था, जैसा कि आप लोग देख चुके हैं, कॉल करना चाहिए था। एएएनएजैक्स नहीं करते एजेक्स

$(function () { doAnAjax(Url, data, function (myRtn) { if (myRtn == "success") { resetForm($('#myForm')); resetForm($('form[name=addChlGrp]')); } else { $('.rtnMsg').html("Opps! Ajax Error"); } }); }); function doAnAjax(newUrl, data) { $.ajax({ url: newUrl, async: true, dataType: 'html', beforeSend: function () { $('.rtnMsg').html("<img src=_cssStyleImg_-A-loading.gif>"); }, type: "GET", data: data, cache: false, success: function (data, textStatus, xhr) { $('.rtnMsg').html(data); myRtnA = "Success" return myRtnA; }, error: function (xhr, textStatus, errorThrown) { $('.rtnMsg').html("opps: " + textStatus + " : " + errorThrown); myRtnA = "Error" return myRtnA; } }); } 

वेब के समाधान से एकत्रित समाधान "फोन समारोह से एक jquery AJAX कॉलबैक के लिए प्रतीक्षा करें"

आपको कॉलबैक फ़ंक्शन का उपयोग करना होगा। इसे नीचे आज़माएं:

 $(function() { // I think doAjax should doAnAjax() // here you're passing callback // but you're not using it doAnAjax() doAnAjax(Url, data, function(myRtn) { if (myRtnV == "success") { resetForm($('#myForm')); resetForm($('form[name=addChlGrp]')); } else { $('.rtnMsg').html("Opps! Ajax Error"); } }); }); // pass callback as third parameter to doAnAjax() function doAnAjax(newUrl, data, callBack) { $.ajax({ url: newUrl, async: true, dataType: 'html', beforeSend: function() { $('.rtnMsg').html("<img src=_cssStyleImg_-A-loading.gif>"); }, type: "GET", data: data, cache: false, success: function(data, textStatus, xhr) { $('.rtnMsg').html(data); myRtnA = "Success" return callBack( myRtnA ); // return callBack() with myRtna }, error: function(xhr, textStatus, errorThrown) { $('.rtnMsg').html("opps: " + textStatus + " : " + errorThrown); myRtnA = "Error" return callBack ( myRtnA ); // return callBack() with myRtna } }); 

जैसा कि पहले बताया गया है, कॉलबैक का इस्तेमाल करना

 function process(url, params, successCallback, errorCallback) { $.ajax({ success : successCallback, error : errorCallback, data : params, url : url, type : 'POST', dataType : 'json' }); } process( 'http://www.google.co.uk', { param1 : 'a' }, function(resp) { alert('Success'); }, function() { alert('Uh oh'); } ); 

आप तब process लिए किसी भी फ़ंक्शन पास कर सकते हैं और इसे सफलता / त्रुटि पर बुलाया जाएगा

जवाब है कि आप ऐसा नहीं करते हैं, लेकिन यह आसानी से प्राप्त हो सकता है। एजेएक्स का विचार यह अतुल्यकालिक है, इसलिए एएएएक्स। इसका मतलब यह है कि मूल रूप से आपके एजेक्स को कॉल करने वाला फ़ंक्शन इसे पूर्ण करने के लिए इंतजार नहीं करेगा और इसके बजाय एक एजेक्स कॉल के बाद सभी कार्य पूरा होने की संभावना सफलता या त्रुटि संचालकों में होनी चाहिए।

यदि आपको कुछ तुल्यकालिक होने की आवश्यकता है तो आप अपने ध्वज को async:true से बदल सकते हैं async:true लिए async:true async:false लेकिन फिर यह वास्तव में एक SJAX कॉल हो सकता है (यह भी सुनिश्चित नहीं है कि शब्द मौजूद है, लेकिन तकनीकी रूप से यह एक AJAX कॉल नहीं है)।

Jquery में 'derferred' देखें नीचे दिए गए उदाहरण के साथ async बंद के साथ deferred.done का उपयोग करता है, और मेरे लिए काम करने लगता है।!

 $.ajax({ url: "http://www.whatever.com/whatever", async: false }).done(function( data ) { alert(data); //or whatever })