- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 261
 
Home
        David Ortner edited this page Feb 19, 2025 
        ·
        64 revisions
      
    Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
The goal of Happy DOM is to emulate enough of a web browser to be useful for testing, scraping web sites and server-side rendering.
Happy DOM focuses heavily on performance and can be used as an alternative to JSDOM.
- Custom Elements (Web Components)
 - Declarative Shadow DOM
 - Mutation Observer
 - Tree Walker
 - Fetch API
 - File Reader
 - CSS Style Declaration
 - Form Data
 - Selection
 - Form Validity State
 - IFrames
 - Cookies
 - Clipboard
 - ECMAScript Modules (e.g. import and export)
 
And much more..
| Operation | JSDOM | Happy DOM | 
|---|---|---|
| Import / Require | 333 ms | 45 ms | 
| Parse HTML | 256 ms | 26 ms | 
| Serialize HTML | 65 ms | 8 ms | 
| Render custom element | 214 ms | 19 ms | 
| querySelectorAll('tagname') | 4.9 ms | 0.7 ms | 
| querySelectorAll(':nth-child(2n+1)') | 10.4 ms | 3.8 ms | 
See how the test was done here
Help Packages