दिलचस्प पोस्ट
मैं मोबाइल लेआउट पर बूटस्ट्रैप 3 कॉलम ऑर्डर कैसे बदलूं? एंड्रॉइड और थ्रेड और कॉलबैक हैंडलिंग में लाइव ऑडियो रिकॉर्डिंग और बजाना मैं पायथन के itertools.groupby () का उपयोग कैसे करूं? एक अपरिभाषित वस्तु संपत्ति का पता लगा रहा है एंड्रॉइड स्टूडियो – बाह्य पुस्तकालय / जार आयात करना XML फ़ाइल में डायनामिक सामग्री को बदलें क्या एचटीटीपी क्लाइंट एक साथ उपयोग करने के लिए सुरक्षित है? SendInput के माध्यम से user32.dll में कुंजी भेजें Windows EventLog में ईवेंट स्रोत और लॉग इवेंट बनाने के लिए अपने IIS7 ASP.Net 3.5 अनुप्रयोग को अनुमति देने के लिए मुझे क्या बदलने की आवश्यकता है? php: बाइनरी डेटा से एक छवि को विश्राम और प्रदर्शित करें क्या लाभ (फ़ंक्शन (विंडो, दस्तावेज़, अपरिभाषित) {…}) (विंडो, दस्तावेज़) का उपयोग करता है? एक्लिप्स डीबगर में वापस कैसे कदम उठाएं? एनयूनिट बनाम एमबीयूनिट बनाम एमएसटीईस्ट बनाम एक्सयूएनआईटी। नेट Android स्टूडियो में बनाने और बनाने में अंतर क्या मैं HTML5 के उपयोग से <<inside> एक <बटन> तत्व घोंसला कर सकता हूं?

फोन समारोह से एक 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; } }); } 

Solutions Collecting From Web of "फोन समारोह से एक 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 })