लोड हो रहा है...

टाइमर्स और शेड्यूलिंग

जावास्क्रिप्ट में टाइमर्स और शेड्यूलिंग एक ऐसा मैकेनिज़्म है जो हमें कोड को समय-आधारित पैटर्न पर नियंत्रित करने की क्षमता देता है। इसका मतलब है कि हम किसी फंक्शन को एक निश्चित समय के बाद चलाना चाहते हैं (delay) या उसे बार-बार निश्चित अंतराल पर चलाना चाहते हैं (interval)। यह विशेष रूप से वेब एप्लिकेशन में महत्वपूर्ण है क्योंकि कई बार हमें यूज़र इंटरैक्शन, डेटा अपडेट, या UI एनीमेशन को समयबद्ध करना होता है।
उदाहरण के लिए, एक पोर्टफोलियो वेबसाइट में आप स्लाइडशो ऑटोमैटिक चलाना चाहें; एक ब्लॉग में ऑटो-रिफ्रेश कमेंट सेक्शन; एक ई-कॉमर्स साइट में ऑफ़र काउंटडाउन टाइमर; एक न्यूज़ साइट में हैडलाइन ऑटो-अपडेट; और एक सोशल प्लेटफॉर्म में रियल-टाइम नोटिफिकेशन।
इस ट्यूटोरियल में आप सीखेंगे कि टाइमर्स (जैसे setTimeout, setInterval, clearTimeout, clearInterval) कैसे काम करते हैं, इन्हें कब और कैसे प्रयोग करना चाहिए, और उन्नत स्तर पर इनसे जुड़े सर्वोत्तम अभ्यास (best practices) और सामान्य गलतियाँ क्या हैं।
इसे आप ऐसे समझ सकते हैं: मान लीजिए आप एक घर बना रहे हैं। घर का निर्माण (कोड) तो एक बार होता है, लेकिन समय-समय पर आपको लाइट्स ऑन/ऑफ करनी पड़ती हैं, या गार्डन को पानी देना होता है। यही टाइमर्स और शेड्यूलिंग की भूमिका है—कोड को सही समय पर "एक्शन" लेने के लिए तैयार करना।

मूल उदाहरण

javascript
JAVASCRIPT Code
// Basic example with setTimeout and setInterval
console.log("Start");

// Executes once after 2 seconds
setTimeout(() => {
console.log("This runs after 2 seconds");
}, 2000);

// Executes repeatedly every 1 second
let counter = 0;
let interval = setInterval(() => {
counter++;
console.log("Interval tick:", counter);
if (counter === 3) clearInterval(interval); // stops after 3 ticks
}, 1000);

ऊपर दिए गए कोड में दो मुख्य फ़ंक्शन प्रयोग हुए हैं: setTimeout और setInterval

  1. console.log("Start"); यह तुरंत ही "Start" प्रिंट करता है। यह शुरुआती बिंदु है।
  2. setTimeout: इसका उपयोग किसी कोड ब्लॉक को एक निश्चित समय के बाद चलाने के लिए होता है। यहाँ, 2000 मिलीसेकंड (यानी 2 सेकंड) के बाद "This runs after 2 seconds" प्रिंट होता है। इसका स्वरूप है:
    setTimeout(callback, delay)
  • callback वह फंक्शन है जो देरी (delay) के बाद चलना चाहिए।
  • delay मिलीसेकंड में होता है।
    3. setInterval: यह किसी कोड ब्लॉक को बार-बार चलाता है, प्रत्येक निर्धारित अंतराल के बाद। यहाँ हर 1000 मिलीसेकंड (1 सेकंड) पर "Interval tick:" के साथ काउंटर बढ़ता है। इसका स्वरूप है:
    setInterval(callback, interval)
  1. clearInterval: यदि इंटरवल को रोकना है तो हमें इसका रेफरेंस (यहाँ interval) चाहिए। जब काउंटर 3 हो जाता है, तब clearInterval(interval) कॉल करके हम बार-बार चलने वाली प्रक्रिया को रोक देते हैं।
    प्रैक्टिकल अप्लीकेशन में, इसे ई-कॉमर्स साइट पर "फ्लैश सेल काउंटडाउन" बनाने के लिए प्रयोग कर सकते हैं, जहाँ एक टाइमर कस्टमर को लगातार अपडेट करता है। या न्यूज़ साइट में ऑटोमैटिक हैडलाइन अपडेट के लिए।
    शुरुआती लोगों का एक सामान्य सवाल होता है: "क्या टाइमर हमेशा सटीक होता है?" जवाब है नहीं। जावास्क्रिप्ट का इवेंट लूप टाइमिंग को प्रभावित कर सकता है, जिससे देरी थोड़ी बहुत आगे-पीछे हो सकती है।

व्यावहारिक उदाहरण

javascript
JAVASCRIPT Code
// E-commerce Flash Sale Countdown Example
let saleTime = 5; // 5 seconds countdown
let countdown = setInterval(() => {
console.log("Sale ends in:", saleTime, "seconds");
saleTime--;
if (saleTime < 0) {
clearInterval(countdown);
console.log("Flash Sale Ended!");
}
}, 1000);

Best Practices और Common Mistakes

  1. Best Practices:
    * आधुनिक सिंटैक्स का प्रयोग करें: हमेशा ES6 arrow functions (() => {}) का उपयोग करें ताकि कोड संक्षिप्त और पढ़ने में आसान हो।
    * Error Handling: हमेशा सुनिश्चित करें कि setInterval या setTimeout को रोकने का मैकेनिज़्म (clearInterval, clearTimeout) शामिल किया गया है।
    * Performance Optimization: अनावश्यक रूप से लंबे समय तक इंटरवल न चलाएं, यह मेमोरी और CPU दोनों पर भार डाल सकता है।
    * Scalability: जटिल एप्लिकेशन में टाइमिंग लॉजिक को अलग मॉड्यूल में रखना अच्छा अभ्यास है।
  2. Common Mistakes:
    * Memory Leaks: इंटरवल को बिना रोकें (clear किए) छोड़ देना।
    * Improper Event Handling: DOM एलिमेंट हटाए जाने के बाद भी टाइमर चालू रहना।
    * Poor Error Handling: ऐसी स्थिति में भी टाइमर चलता रहना जब उसकी ज़रूरत नहीं है।
    * Misuse of Delay: सोचना कि setTimeout(fn, 0) का मतलब तुरंत चलाना है—असल में यह event loop के अगले चक्र तक इंतजार करता है।
  3. Debugging Tips:
    * ब्राउज़र के DevTools में breakpoints और console.log() का उपयोग करें।
    * लंबे इंटरवल्स के लिए लॉगिंग करके देख लें कि वे वास्तव में सही समय पर चल रहे हैं।
  4. Practical Recommendations:
    * हमेशा इंटरवल और टाइमआउट को ट्रैक करें और ज़रूरत पड़ने पर उन्हें रोकें।
    * जटिल एप्लिकेशन के लिए RxJS या requestAnimationFrame जैसे आधुनिक विकल्पों पर भी विचार करें।

📊 त्वरित संदर्भ

Property/Method Description Example
setTimeout किसी फंक्शन को निश्चित देरी के बाद चलाता है setTimeout(() => console.log("Hi"), 2000)
clearTimeout setTimeout से सेट किए गए टाइमर को रोकता है clearTimeout(timerId)
setInterval किसी फंक्शन को बार-बार निश्चित अंतराल पर चलाता है setInterval(() => console.log("Tick"), 1000)
clearInterval setInterval से सेट किए गए इंटरवल को रोकता है clearInterval(intervalId)
requestAnimationFrame UI रेंडरिंग के लिए स्मूद शेड्यूलिंग प्रदान करता है requestAnimationFrame(draw)

Summary और Next Steps
इस ट्यूटोरियल में आपने सीखा कि जावास्क्रिप्ट में टाइमर्स और शेड्यूलिंग कैसे काम करते हैं, और इन्हें रियल-लाइफ़ प्रोजेक्ट्स जैसे पोर्टफोलियो वेबसाइट, ई-कॉमर्स साइट, या न्यूज़ पोर्टल में कैसे इस्तेमाल किया जा सकता है। मुख्य पॉइंट्स थे:

  • setTimeout का प्रयोग देरी (delay) के लिए
  • setInterval का प्रयोग पुनरावृत्ति (repetition) के लिए
  • इन्हें रोकने के लिए clearTimeout और clearInterval
  • और UI के लिए विशेष विकल्प जैसे requestAnimationFrame
    ये कॉन्सेप्ट्स सीधे HTML DOM मैनिपुलेशन से जुड़े हैं, जैसे कि आप DOM में किसी एलिमेंट को बार-बार अपडेट कर सकते हैं। साथ ही, backend communication (जैसे API से डेटा फ़ेच करना) के साथ भी जुड़ते हैं—उदाहरण के लिए, हर 5 सेकंड में नया डेटा लाना।
    अगले स्टेप्स में आपको JavaScript Event Loop, Async/Await, और Promises जैसे विषयों का अध्ययन करना चाहिए। ये आपके टाइमर्स और शेड्यूलिंग की समझ को और गहराई देंगे।
    Practical Advice: हमेशा अपने कोड को मॉड्यूलर रखें और समय-आधारित लॉजिक को अच्छी तरह डाक्यूमेंट करें ताकि बड़ी टीम में काम करना आसान हो।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपना ज्ञान परखें

व्यावहारिक प्रश्नों के साथ इस विषय की अपनी समझ का परीक्षण करें।

4
प्रश्न
🎯
70%
पास करने के लिए
♾️
समय
🔄
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी