skills/sraloff/gravityboots/javascript-async-dom

javascript-async-dom

SKILL.md

JavaScript Async & DOM

When to use this skill

  • Manipulating usage of fetch or XMLHttpRequest.
  • Adding event listeners to DOM elements.
  • Interacting with browser APIs (Local Storage, Navigator).

1. Async Data Fetching

  • Fetch API: Use fetch() with async/await. Always check res.ok before parsing JSON.
    const res = await fetch('/api/data');
    if (!res.ok) throw new Error('Failed');
    const data = await res.json();
    
  • AbortController: Use AbortController to cancel pending requests when components unmount or fast interactions occur.

2. event Delegation

  • Listener Attachment: Attach listeners to a parent container rather than individual items for lists.
    list.addEventListener('click', (e) => {
      if (e.target.matches('.item-btn')) { ... }
    });
    
  • Cleanup: Always use removeEventListener if listeners are attached to transient elements (or use { once: true } where applicable).

3. DOM Manipulation

  • Performance: Minimize reflows. Read layout properties (offsetWidth, etc.) in a batch, then write styles in a batch.
  • Fragments: Use DocumentFragment when appending multiple elements to the DOM at once.
Weekly Installs
3
GitHub Stars
2
First Seen
Feb 21, 2026
Installed on
opencode3
gemini-cli3
github-copilot3
codex3
kimi-cli3
amp3