setTimeout, setInterval और टाइमर का खिसकाव
setTimeout/setInterval से एक बार और बार-बार चलने वाले कार्य निर्धारित करें तथा टाइमर के खिसकाव को कम करने की सरल तकनीक सीखें।
setTimeout, setInterval और टाइमर का खिसकाव, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 3 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
timer का परिचय
लक्ष्य: काम को व्यवस्थित ढंग से निर्धारित करना।
- setTimeout: बाद में एक बार चलाएँ
- setInterval: बार-बार चलाएँ
- drift: timer अपने समय से क्यों खिसकते हैं
- drift को ठीक करने का सरल तरीका

setTimeout — एक बार चलने वाला
setTimeout(fn, ms) विलंब के बाद एक बार चलता है (समय न्यूनतम होता है, सटीक नहीं)।
// setTimeout schedules a one-off callback
console.log("A: start");
setTimeout(function () {
console.log("B: after ~5ms");
}, 5);
console.log("C: scheduled");

setInterval — दोहराव वाला
setInterval अपने-आप दोहराता है; रोकने के लिए clearInterval(id) का उपयोग करें।
// setInterval repeats; always clear it
let count = 0;
const id = setInterval(function () {
count = count + 1;
console.log("tick", count);
// Stop after 3 ticks to avoid endless logs
if (count >= 3) {
clearInterval(id);
console.log("stopped");
}
}, 5);

drift को घटित होते देखें
वास्तविक अंतराल अलग-अलग होते हैं; काम, डिवाइस का भार और इवेंट लूप drift का कारण बनते हैं।
// Drift demo: expected vs actual timing
const targetMs = 5;
let last = Date.now();
let times = 0;
const driftId = setInterval(function () {
const now = Date.now();
const gap = now - last; // actual gap
last = now;
times = times + 1;
console.log("gap~", gap, "ms");
if (times >= 3) {
clearInterval(driftId);
console.log("done");
}
}, targetMs);

तालमेल वाला निर्धारण
बदलते हुए expected समय के साथ तालमेल बैठाएँ: उसमें से अगली प्रतीक्षा निकालें, ताकि त्रुटि लगातार जमा न हो।
// Simple drift fix: schedule from the expected time
const step = 5;
let expected = Date.now() + step;
let ticks = 0;
function tick() {
ticks = ticks + 1;
const now = Date.now();
const drift = now - expected; // positive if we are late
console.log("drift:", drift, "ms");
// Compute next expected time first
expected = expected + step;
// Next delay = time until the next expected timestamp
const nextDelay = Math.max(0, expected - Date.now());
if (ticks < 3) {
setTimeout(tick, nextDelay);
} else {
console.log("aligned stop");
}
}
setTimeout(tick, step);

सुझाव और जाँच-सूची
सुझाव:
- काम पूरा होने पर हमेशा clearInterval करें।
- स्थिर गति के लिए तालमेल वाले setTimeout चक्रों को प्राथमिकता दें।
- drift कम करने के लिए timer से बुलाए जाने वाले कार्य छोटे रखें।

drift सुधार—प्रश्नोत्तरी
त्वरित जाँच: drift कम करना।

पुनरावलोकन
पुनरावलोकन: एक बार चलने वाले कामों के लिए setTimeout, दोहराए जाने वाले कामों के लिए setInterval का उपयोग करें (उसे हटाना याद रखें), और अगली बार चलने का समय expected समय के साथ मिलाकर drift कम करें।

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 59
- पाठ
- 200
अक्सर पूछे जाने वाले प्रश्न
क्या “setTimeout, setInterval और टाइमर का खिसकाव” पाठ निःशुल्क है?
हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “setTimeout, setInterval और टाइमर का खिसकाव” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“setTimeout, setInterval और टाइमर का खिसकाव” में मैं क्या सीखूँगा?
setTimeout/setInterval से एक बार और बार-बार चलने वाले कार्य निर्धारित करें तथा टाइमर के खिसकाव को कम करने की सरल तकनीक सीखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 1वाँ पाठ है।
“setTimeout, setInterval और टाइमर का खिसकाव” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- setTimeout, setInterval और टाइमर का खिसकाव
- डिबाउंस बनाम थ्रॉटल — स्वयं बनाना
- एनीमेशन टाइमिंग — समय-आधारित लूप का परिचय