Obfuscation Lab / Experiment 08

Asynchronous DOM mutations

The price appears after a delay and is rebuilt character by character every few seconds. Reading the DOM at the wrong moment can return an empty or incomplete value.

Demo portable speaker

Fictional product · no actual purchase available

Price

Loading…

Waiting for the first render…

Live extraction results

A normal page load does not guarantee that JavaScript has finished generating content. Watch the values during each rebuild.

textContent
innerText
Rendering phase
Completed generations
Current wrappers

Current generated HTML

What this experiment demonstrates

The price starts as a placeholder. JavaScript later builds it one character at a time and periodically replaces the wrappers. The browser's load event doesn't mean the price is ready, and the DOM can temporarily contain incomplete data.

This demo exposes data-phase and data-generation for testing. Real websites may not provide such signals, so a scraper might need to monitor the target element for stability.