Web Worker Heavy Task Demo - Online NonβBlocking
Run a CPUβheavy calculation (e.g., prime numbers) in a Web Worker and see the UI stay responsive. Code snippet provided.
UD5 Toolkit
Experience the difference between blocking and non-blocking computation in the browser.
Real-time Animation MonitorClick "Main Thread" to compute Fibonacci on the main thread.
Click "Web Worker" to compute Fibonacci without blocking the UI.
postMessage() and onmessage event handlers. Since workers run in a separate global context, they cannot directly access the DOM, window, or document objects.
requestAnimationFrame callbacks. This causes the animation ball to freeze, timers to stop, and the page to become unresponsive. This demo makes that invisible bottleneck visible.
window, or document. (2) Data is passed via structured cloning (copy, not share), which has overhead for large objects. (3) Each worker has memory overhead (~2-5MB+). (4) Workers cannot access localStorage or sessionStorage directly. (5) Debugging workers can be more challenging. For shared memory scenarios, SharedArrayBuffer can be used, but it requires specific security headers (COOP/COEP).
worker.terminate(). This stops the worker's execution instantly without allowing it to finish or clean up. There's no way to "gracefully" cancel a worker from the outsideβthe worker must cooperatively check a flag if you need graceful cancellation. In this demo, the Cancel button calls terminate() to abort an ongoing computation. This is one advantage workers have over main-thread computations, which cannot be interrupted once started.
BigInt serialization via structured cloning (used in this demo for large Fibonacci numbers) is supported in Chrome 67+, Firefox 68+, Safari 14+, and Edge 79+. For older browsers, you can serialize BigInt results as strings for compatibility.
Run a CPUβheavy calculation (e.g., prime numbers) in a Web Worker and see the UI stay responsive. Code snippet provided.
Divide your day into blocks with color codes. Drag tasks into slots. See free time at a glance.
Pick a random icebreaker question or activity for remote meetings. Never start a meeting awkwardly again.
Assign Secret Santa pairings from a list of names with spouse/partner exclusions. Optionally email results via mailto link. Fully local, no server.
Calculate how much fabric you need for a quilt based on block size, number, and sashing. Supports metric and imperial. No upload, local.
Display used/total/limit JS heap size using performance.memory. Take snapshots and see growth. Simple memory leak detection.
Adjust root, margin, and threshold. See a live log of intersection events as you scroll. Debug lazy loading.
Apply contentβvisibility: auto to offβscreen sections and see the rendering cost drop. Demos for infinite scroll optimization.
Enter mosaic area and choose tessera size to find the approximate number of tiles required. Includes grout joint factor.
Check if your site has a visible and functional skip navigation link. Key for keyboardβonly users.
Render 1000 styled elements using inline styles vs. CSS classes and compare time. Understand CSSβinβJS tradeβoffs.
Log how many times you've passed clay through the pasta machine. Ensure thorough conditioning without guesswork.
Enter your car's make and model to find the minimum and maximum rotor thickness specs. Static lookup table. Local reference.
Write a generator function and step through it with next(). See values and done state. Understand iterators.
Count bubbles per minute to estimate fermentation activity and approximate sugar consumption. Simple conversion.
Enter ground snow load and roof pitch to estimate the effective snow load on a sloped roof. Quick structural check for snowy regions.
Schedule tasks with userβvisible, userβblocking, or background priority. See execution order and delays. Modern web perf.
Apply a Proxy to an object and see the get/set traps log fired in real time. Understand metaprogramming. Local.
Create a pure CSS scroll progress indicator using animationβtimeline: scroll(). No JavaScript. Copy the complete code.
Enter income, pay frequency, and expected deductions to estimate your tax refund or balance due. Simplified model.
Toggle contentβvisibility: auto on long blocks and see the rendering time difference. Understand this powerful property.
Pixelate selected areas of an image to hide faces or sensitive data. Adjust block size. Download the censored result.
See how many tabs you have open and estimate memory usage based on navigator object. Fun productivity check.
Fairly distribute pooled tips among staff based on hours worked or points. Customizable percentages. All calculations local and private.
Generate a random potion with a color, effect, and ingredient list. Ideal for RPG item shops and worldbuilding.
Enter the amount of leftover paint and see how many square feet it still covers. Plan touch-ups.
Learn how to register your PWA to handle custom URL protocols. See the manifest entry and test.
Enter quilt perimeter, binding width, and seam allowance to get the exact fabric yardage for either straightβgrain or bias binding.
Select a caching strategy and see a flow diagram of how requests are handled. Learn PWA patterns.
Create a custom soap recipe by selecting oils and their percentages. Get precise lye and water amounts. Safety warnings included.