हर किसी का पसंदीदा: अवधारणा वीडियो समय! कॉलबैक जावास्क्रिप्ट में एक महत्वपूर्ण अवधारणा है। वे कार्य हैं जिन्हें तब बुलाया जाता है जब कोई क्रिया पूर्ण हो जाती है। फिर हमारे कोड को संरचना और समय उधार दें।
उदाहरण के लिए हम पिछले वीडियो में इस्तेमाल किया एनीमेशन ले लो। एनिमेशन को चलने में समय लगता है। क्या होगा अगर आप चाहते हैं कि कुछ और सही हो जाए जब वह एनीमेशन खत्म हो जाए? क्या आपको setTimeoutएनीमेशन के समान लंबाई के लिए करना है ? नहीं। jQuery हमें कॉलबैक फ़ंक्शंस देता है जिसका उपयोग केवल उस उद्देश्य के लिए किया जाता है।
वे आम तौर पर एक अतिरिक्त पैरामीटर हैं जो हम विधि से गुजरते हैं। एनीमेशन के मामले में, हम अंतिम पैरामीटर के रूप में एक फ़ंक्शन पास करते हैं। वह कॉलबैक फ़ंक्शन है, और एनीमेशन पूर्ण होने पर कॉल किया जाएगा।
$("#element").animate(( // stuff to animate ), function() ( // callback function ));
यह शायद थोड़ा अजीब लग रहा है, लेकिन अनिवार्य रूप से हम बस कर रहे हैं:
.animate(a, b)
जहां aगुणों और मूल्यों की एक वस्तु है, और bएक कॉलबैक फ़ंक्शन है।
लेकिन हम आखिरी वीडियो से जानते हैं कि एनीमेशन एक टाइमिंग पैरामीटर भी ले सकता है जो निर्दिष्ट करता है कि एनीमेशन कितना समय लेगा। कहाँ जाता है? यह एक वैकल्पिक पैरामीटर है, जैसे कॉलबैक फ़ंक्शन है। यदि हम इसका उपयोग करना चाहते हैं, तो हम इसे ठीक मध्य में रख देंगे, इसलिए अनिवार्य रूप से:
.animate(propertiesObject, duration, callback);
और एक अन्य वैकल्पिक पैरामीटर भी है, एक स्ट्रिंग हम एक सहजता मूल्य निर्दिष्ट करने के लिए पारित कर सकते हैं।
.animate(propertiesObject, duration, easing, callback);
jQuery सिर्फ उन वैकल्पिक मापदंडों के बारे में शांत और स्मार्ट होने के लिए होता है। यदि आप बीच के दो को छोड़ देते हैं और कॉलबैक पास कर देते हैं, तो यह बता सकता है कि आप जो पास कर रहे हैं वह एक फ़ंक्शन है, संख्या या स्ट्रिंग नहीं है, इसलिए यह जानता है कि आपको कॉलबैक फ़ंक्शन का मतलब है। आपको फर्जी मूल्यों या किसी भी चीज में पास होने की जरूरत नहीं है। यह सिर्फ अच्छा एपीआई डिजाइन है!
जब आप jQuery प्रलेखन को देखते हैं, तो वे इसे इस तरह दिखाते हैं:
.animate (गुण (, अवधि), (, सहजता) (, पूर्ण))
फिर अपेक्षित प्रकारों को समझाने के बाद ही सही।
लेकिन फिर भी, कॉलबैक में वापस। आप बहुत नेस्टेड हो सकते हैं। कॉलबैक फ़ंक्शन में एक और एनीमेशन डालने की कल्पना करें, और उस एनीमेशन का अपना कॉलबैक है। यह पूरी तरह से उचित है, जैसा कि आप एक बहु-कदम एनीमेशन करना चाहते हैं। आपको बस व्यवस्थित रहने की जरूरत है।
पेन 450c5810be27a9a8946cb8012cbd1213 को क्रिस कॉयियर (@chriscoyier) द्वारा CodePen पर देखें
हम यहां केवल उदाहरण के रूप में एनीमेशन का उपयोग कर रहे हैं। शायद कॉलबैक फ़ंक्शन का एक और भी अधिक सामान्य उपयोग अजाक्स है। Ajax तब होता है जब ब्राउज़र पृष्ठ को रीफ्रेश किए बिना किसी अन्य संसाधन के लिए कॉल करता है। यह पूरी तरह से अज्ञात राशि ले सकता है। यह बैंडविड्थ और विलंबता और फ़ाइल के आकार और त्रुटि की स्थिति और सभी प्रकार के सामान पर निर्भर करता है। आप उस अजाक्स अनुरोध के साथ कुछ भी नहीं कर सकते जब तक कि आपको कुछ वापस या अन्यथा अधिक जानकारी न मिले। कॉलबैक फ़ंक्शंस उसके लिए एकदम सही हैं, और हम बाद में उस पर विचार करेंगे।