isInputPending() API Demo - Online Yield to User
Demonstrate how to yield heavy computation to user input using the isInputPending API. Keep UI responsive.
UD5 Toolkit
Real-time monitoring of long tasks (>50ms) to identify INP bottlenecks
Total Long Tasks
Total Blocking Time
Average Duration
Longest Task
INP Risk Level
| # | Time (s) | Duration | Blocking | Severity | Source | Attribution | Detected At |
|---|---|---|---|---|---|---|---|
| Start monitoring to detect long tasks | |||||||
PerformanceObserver with entryType: 'longtask') allows developers to detect these problematic tasks programmatically.
duration - 50ms (the amount exceeding the 50ms threshold). TBT is the sum of all these blocking portions. For example, if you have two long tasks of 120ms and 80ms, the TBT is (120-50) + (80-50) = 70 + 30 = 100ms. TBT strongly correlates with INP and is a key metric in Lighthouse performance audits.
setTimeout or scheduler.postTask(): Yield control to the browser by breaking long operations into smaller tasks.defer or dynamic imports.requestAnimationFrame for visual updates and batch DOM changes.PerformanceObserver observing 'longtask') is a specification that is currently only implemented in Chromium-based browsers (Google Chrome, Microsoft Edge, Opera, Brave, etc.). Firefox and Safari have not yet implemented this API. If you're using a non-Chromium browser, consider using Chrome or Edge to run this tool, or use the "Simulate Long Task" feature to test the tool's functionality with artificial long tasks.
requestAnimationFrame callback to determine when the browser paints. While this accurately demonstrates the relationship between long tasks and interaction delays, real-world INP is measured over many interactions and uses a more sophisticated methodology. Use this simulation to understand the concept, but always verify with real user monitoring (RUM) data for production insights.
Demonstrate how to yield heavy computation to user input using the isInputPending API. Keep UI responsive.
Simulate different cache strategies (Cache First, Network First, StaleâWhileâRevalidate) and see responses. Learn offline patterns.
Create halfâhour time blocks for your day. Drag to resize and reorder. Export as image. All local.
Paste a git log and generate a polished changelog grouped by type (feat, fix, etc.). Follows Keep a Changelog format. Local.
Describe cron schedule expressions in plain English and test future execution times. Indispensable for DevOps and backend developers. Local analysis.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.
Build a cron expression using plain English toggles and see its visual timeline. No memorization needed.
Enter a cron expression and get a plain English description of when it runs. Understand complex schedules instantly. Developer friendly.
Paste a corpus of text and generate new random sentences that mimic the style using Markov chains. Local only.
Fill in daily work hours and tasks, and generate a printable PDF timesheet. Clean, professional layout. Local.
Type on your QWERTY keyboard and see the text as if you were on a Dvorak layout. Helps learn Dvorak without switching.
Toggle scrollbarâgutter: stable to reserve space for the scrollbar and avoid content jumps. Visual demo with two columns.
Compare standard keyboard layouts side-by-side. Click keys to see characters. Useful for learning alternative layouts.
Break a large block of text into a numbered list of sentences. Useful for analysis or translation. Local processing.
Take a normal sentence and reverse the word order. Sound like Yoda or just play with language.
Create multiâstep keyframe animations by adding stops and properties. Play and pause. Copy the complete CSS. Intuitive UI.
Fill in a component name and generate a complete Stencil.js component with TSX, CSS, and test files. Quick start.
Generate a plausible technical blog post title. Useful for practice writing or placeholder content. All local.
Toggle browserâgenerated bold and italic when a real italic is missing. Understand and control font fallback rendering.
Build a responsive masonry layout using the columnâcount property. No JavaScript. Copy the minimal CSS.
Add a warm, orange light leak to your photo for a vintage film look. Adjust intensity and angle. Instant download.
Toggle contentâvisibility: auto on long blocks and see the rendering time difference. Understand this powerful property.
Set up multiple @layers and use revertâlayer to fall back. See the computed style and cascade resolution live.
Construct HTTP Link headers for server push replacements, preload, and preconnect. Copy the header value.
Highlight elements with ariaâdescribedby and see the linked description text. Verify a11y annotations.
See your current page load broken down into DNS, TLS, request, and DOM phases. Understand where time is spent.
Select any element on the test page and monitor its size changes with ResizeObserver. See log of all entries.
Load an image and see the exact events fired (load, error, abort). Monitor progress. Dev helper.
Fill in a form and see the FormData object as JSON. Perfect for debugging multipart form submissions. Client-side.
Calculate large Fibonacci numbers in a Web Worker. See the UI remain responsive. Copy the pattern for your app.