πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

Timing and Microtasks

Web Foundations🟒 Free Lesson

Advertisement

Timing and Microtasks

setTimeout, setInterval, requestAnimationFrame, and microtask queue.

Overview

JavaScript timing functions control code execution timing.

Key Concepts

  • setTimeout β€” Delay execution
  • setInterval β€” Repeat execution
  • requestAnimationFrame β€” Optimize animations
  • Microtasks β€” Promise callbacks
  • Event Loop β€” Task and microtask execution order

Code Examples

<div id="output"></div>
<button id="start">Start Timing Demo</button>

<script>
const output = document.getElementById('output');

function log(message) {
  output.innerHTML += `<div>${message}</div>`;
}

document.getElementById('start').addEventListener('click', () => {
  output.innerHTML = '';
  
  log('1. Synchronous start');
  
  setTimeout(() => log('5. setTimeout (0ms)'), 0);
  setTimeout(() => log('6. setTimeout (100ms)'), 100);
  
  Promise.resolve().then(() => log('3. Promise resolved'));
  
  requestAnimationFrame(() => log('4. requestAnimationFrame'));
  
  log('2. Synchronous end');
});

// Debounce function
function debounce(func, wait) {
  let timeout;
  return function executedFunction(...args) {
    const later = () => {
      clearTimeout(timeout);
      func(...args);
    };
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
  };
}

// Throttle function
function throttle(func, limit) {
  let inThrottle;
  return function(...args) {
    if (!inThrottle) {
      func.apply(this, args);
      inThrottle = true;
      setTimeout(() => inThrottle = false, limit);
    }
  };
}

// Usage
const debouncedSearch = debounce((query) => {
  console.log('Searching:', query);
}, 300);

const throttledScroll = throttle(() => {
  console.log('Scroll position:', window.scrollY);
}, 100);

document.getElementById('search').addEventListener('input', (e) => {
  debouncedSearch(e.target.value);
});

window.addEventListener('scroll', throttledScroll);
</script>

Practice

Implement a countdown timer using setTimeout and visual feedback.

⭐

Premium Content

Timing and Microtasks

Unlock this lesson and 900+ advanced tutorials with a Premium plan.

🎯End-to-end Projects
πŸ’ΌInterview Prep
πŸ“œCertificates
🀝Community Access

Already a member? Log in

Need Expert Web Development Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement