Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट के साथ निर्दिष्ट समय के बाद फ़ंक्शन कैसे चलाएं

आप बिल्ट-इन setTimeout() . का उपयोग करके किसी भी JavaScript फ़ंक्शन के निष्पादन में देरी कर सकते हैं विधि।

मान लें कि आप 3 सेकंड के बाद अलर्ट डायलॉग दिखाना चाहते हैं।

सबसे पहले आपको 3 सेकंड को मिलीसेकंड (ms) में बदलना होगा, जो कि 3000ms है, और फिर फ़ंक्शन सेट करें:

setTimeout(function() {
  alert("That’s 3 seconds!")
}, 3000)

उपरोक्त एक अनाम (नामहीन) फ़ंक्शन है, जो वास्तविक जीवन में बहुत व्यावहारिक नहीं है, क्योंकि इसका उपयोग केवल एक बार किया जा सकता है, और यह गैर-वर्णनात्मक है।

यहां ठीक वैसी ही कार्यक्षमता है, लेकिन एक नामित फ़ंक्शन एक्सप्रेशन: . में

const delayThreeSeconds = function() {
  alert("That’s 3 seconds!")
}

setTimeout(delayThreeSeconds, 3000)

अब आप delayThreeSeconds को संदर्भित करके अपने प्रोजेक्ट में कहीं भी अपने विलंब फ़ंक्शन का पुन:उपयोग कर सकते हैं चर।

सेटटाइमआउट विलंब सूचक है — सटीक नहीं

अधिकांश लोग यह नहीं जानते हैं कि आपके द्वारा सेटटाइमआउट में निर्दिष्ट समय न्यूनतम फ़ंक्शन-निष्पादन विलंब है — निष्पादित करने में इसकी सटीक मात्रा नहीं लगेगी।

इसलिए यदि आप 3000ms (3 सेकंड) निर्दिष्ट करते हैं, तो आपके फ़ंक्शन के निष्पादित होने में अधिक समय लग सकता है क्योंकि जावास्क्रिप्ट सिंक्रोनस है, यह एक समय में एक कार्य चलाता है।

इसलिए यदि आपकी वेबसाइट में अन्य JavaScript फ़ंक्शन कार्यों का एक समूह है जो आपके setTimeout से पहले निष्पादित करने के लिए सेट हैं फ़ंक्शन, उन कार्यों को पहले पूरा करना होगा, और इसमें कुछ मिलीसेकंड से लेकर कई सेकंड तक का समय लग सकता है।

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

यह सब setTimeout . बनाता है कुछ हद तक अप्रत्याशित, या कम से कम अविश्वसनीय अगर आपको पिन-पॉइंट परिशुद्धता की आवश्यकता है।

इस समस्या से बचने का एक आसान तरीका (ज्यादातर)

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

हालांकि, भले ही आपका सबसे महत्वपूर्ण फ़ंक्शन किसी अन्य कोड से पहले निष्पादित करने के लिए सेट हो, फिर भी कुछ . हो सकता है निष्पादन में देरी।

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

यही कारण है कि प्रदर्शन पर ध्यान केंद्रित करने के लिए इतना महत्वपूर्ण विषय है, और लगातार उपयोगकर्ता अनुभव प्रदान करने के लिए सभी ब्राउज़रों और कई उपकरणों पर आपके कोड के प्रदर्शन का परीक्षण क्यों महत्वपूर्ण है।

जानना अच्छा है: आज आपने जो सीखा वह setInterval . पर भी लागू होता है विधि, अंतर यह है कि यह बार-बार चलता है, — setTimeout एक बार चलता है।


  1. जावास्क्रिप्ट के साथ एक निश्चित समय सीमा में समय देखने के लिए मानचित्र फ़ंक्शन का उपयोग कैसे करें?

    मान लीजिए, हमारे पास उस समय के साथ विषय रिकॉर्ड हैं जब हम उनका अध्ययन करने की योजना बना रहे हैं - const scheduleDetails = [    { subjectName: 'JavaScript', studyTime: '5 PM - 11 PM' },    { subjectName: 'MySQL', studyTime: '12 AM - 4PM' } ] यहां ब

  1. दो एसिंक्स फ़ंक्शन पूर्ण होने के बाद फ़ंक्शन कैसे चलाएं - जावास्क्रिप्ट

    मान लीजिए कि हमारे पास दो तत्वों की एक सरणी है, जिसके दोनों तत्व दो अतुल्यकालिक कार्य हैं। हमें कुछ काम करने की आवश्यकता है, जैसे कि कंसोल पर कुछ प्रिंट करें (इस प्रश्न के उद्देश्य के लिए) जब दोनों async फ़ंक्शन का निष्पादन पूरा हो जाए। हम इस चुनौती का सामना कैसे कर सकते हैं? कुछ अतुल्यकालिक कार्य

  1. पायथन में उच्च परिशुद्धता के साथ समय कैसे मापें?

    उच्च परिशुद्धता के साथ समय मापने के लिए, या तो time.clock() या time.time() फ़ंक्शन का उपयोग करें। पायथन डॉक्स बताता है कि इस फ़ंक्शन का उपयोग बेंचमार्किंग उद्देश्यों के लिए किया जाना चाहिए। उदाहरण import time t0= time.clock() print("Hello") t1 = time.clock() - t0 print("Time elapsed: