इस सवाल का पहले से ही एक उत्तर है: < / P>
- 21 उत्तर
मैं bellow समारोह कर रहा हूँ । यहां मैं उपयोगकर्ता परिभाषित फ़ंक्शन से अजाक्स सफलता वापस करना चाहता हूं। ऐसा कैसे करें
चेतावनी (अजाक्सकॉल (आईडी_अरे, "डेल")); फ़ंक्शन अजाक्सकॉल (id_array, type) {$ .ajax ({type: "POST", url: "serverpage.php", कैश: गलत, डेटा: ({id: id_array, type: type}), सफलता: कार्य (msg) ) {वापसी msg; // यह कुछ भी नहीं देता}}); चेतावनी (एमएसजी); // यह एक अपरिभाषित}
धन्यवाद
"ए "एजेक्स" में "एसिंक्रोनस" ("एसिंक्रोनस जावास्क्रिप्ट एंड एक्सएमएल" का मतलब है, हालांकि इन दिनों ज्यादातर लोग एक्सएमएल के बजाय जेसन के साथ इसका इस्तेमाल करते हैं)।
तो आपका
Ajaxcall फ़ंक्शन एजेक्स कॉल पूर्ण होने से पहले रिटर्न देता है, यही वजह है कि आप रिटर्न वैल्यू के रूप में संदेश नहीं लौटा सकते।
सामान्य बात यह है कि कॉलबैक के बजाय इसे पास करना है:
< कोड> अजाक्सकॉल (आईडी_अरे, "डेल", फ़ंक्शन (msg) {चेतावनी (msg);}); फ़ंक्शन अजाक्सकॉल (id_array, type, callback) {$ .ajax ({type: "POST", url: "serverpage.php", कैश: गलत, डेटा: ({id: id_array, type: type}), सफलता: फ़ंक्शन (Msg) {callback (msg);}}); }
यह जावास्क्रिप्ट के साथ आश्चर्यजनक रूप से आसान है, क्योंकि जावास्क्रिप्ट के कार्य हैं और इनलाइन को परिभाषित किया जा सकता है उदाहरण के लिए, मान लीजिए आप ऐसा करना चाहते हैं:
फ़ंक्शन foo () {var ajaxstuff, localData; LocalData = doSomething (); Ajaxstuff = getAjaxStuff (); doSomethingElse (ajaxStuff); doAnotherThing (localData); }
आप असलक्रोनंस को इस तरह से लिख सकते हैं:
function foo () {var localData; LocalData = doSomething (); GetAjaxStuff (फ़ंक्शन (ajaxstuff) {doSomethingElse (AJAXStuff); doAnotherThing (localData);}); }
मुझे ध्यान रखना चाहिए कि एक एजेक्स कॉल सिंक्रोनस बनाने के लिए यह संभव है JQuery में, आप इसे
async विकल्प (इसे
false सेटिंग) से गुजर करके करते हैं। लेकिन यह एक बहुत बुरा विचार है। सिंक्रोनस एजेक्स कॉल्स को एक बहुत ही उपयोगकर्ता-मैत्रीपूर्ण फैशन में अधिकांश ब्राउज़रों की UI लॉक करते हैं। इसके बजाय, अपने कोड को ऊपर से थोड़े से पुनर्गठन करें।
लेकिन केवल पूर्णता के लिए:
चेतावनी (अजाक्सकॉल (id_array, "del")); फ़ंक्शन अजाक्सकॉल (id_array, प्रकार) {var returnValue; $। एजेक्स ({प्रकार: "पोस्ट", url: "serverpage.php", कैश: गलत, async: false, // & lt; == तुल्यकालिक अनुरोध, बहुत बुरा विचार डेटा: ({id: id_array, type: type }), सफलता: फ़ंक्शन (msg) {returnValue = msg;}}); वापसी वापसी वेल्यू; }
Comments
Post a Comment