```yaml
product: AlterLab
title: "JavaScript Rendering — Web Scraping Glossary | AlterLab"
comparison_context: "AlterLab is an alternative to Firecrawl, ScrapingBee, and Bright Data."
source_url: https://alterlab.io/glossary/javascript-rendering
```

browser

# JavaScript Rendering

The process of executing a page's JavaScript in a browser engine before extracting content, required for React, Vue, and Angular SPAs.

JavaScript rendering is the step of launching a real browser engine, loading the target page, waiting for all JavaScript to execute, and only then extracting the final DOM. It is necessary for any site that builds its content client-side — which is the majority of modern web applications.

When a framework like React renders on the client, the initial HTML response is a near-empty `<div id="root">` container. The JavaScript bundle downloads, executes, fetches data from APIs, and updates the DOM — all happening in the browser after the initial HTML load. A standard HTTP scraper receives only the empty shell. JavaScript rendering waits for the full lifecycle to complete before extracting.

The performance cost is real: rendering a page takes 2-10x longer than a plain HTTP fetch and consumes far more CPU and memory. AlterLab's intelligent tier selection runs JavaScript rendering only when the site requires it — plain HTTP is attempted first when possible, falling back to rendering only when the response lacks expected content.

### What is JavaScript Rendering?

The process of executing a page's JavaScript in a browser engine before extracting content, required for React, Vue, and Angular SPAs.

### How does AlterLab handle JavaScript Rendering?

The performance cost is real: rendering a page takes 2-10x longer than a plain HTTP fetch and consumes far more CPU and memory. AlterLab's intelligent tier selection runs JavaScript rendering only when the site requires it — plain HTTP is attempted first when possible, falling back to rendering only when the response lacks expected content.

## Examples

```
# Activate JavaScript rendering
{
  "url": "https://react-app.com/products",
  "render_js": true,
  "wait_for": ".product-grid"
}
```

## Related Terms

[Headless BrowserA web browser that runs without a graphical user interface, executing JavaScript and rendering pages exactly as a real browser would.](https://alterlab.io/glossary/headless-browser)[Dynamic ContentPage content generated client-side by JavaScript after the initial HTML is served, requiring a browser engine to render.](https://alterlab.io/glossary/dynamic-content)[Browser FingerprintingA technique anti-bot systems use to identify bots by collecting dozens of browser attributes including Canvas, WebGL, and timing signatures.](https://alterlab.io/glossary/browser-fingerprinting)[PlaywrightAn open-source browser automation library from Microsoft that controls Chromium, Firefox, and WebKit through a unified async API.](https://alterlab.io/glossary/playwright)[Stealth ModeBrowser automation patches that normalise headless browser signals to match genuine user browser profiles and navigate browser environment checks.](https://alterlab.io/glossary/stealth-mode)

## Extract JavaScript Rendering data from any website

AlterLab returns clean, structured data from any public URL — no scraper infrastructure needed. Start free, no credit card required.

[View API docs](https://alterlab.io/docs/api/rest)

[Back to Glossary](https://alterlab.io/glossary)