Skip to content
David Ortner edited this page Mar 16, 2024 · 60 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.

DOM Features

  • 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

And much more..

Browser Features

Other Features

Performance

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

Clone this wiki locally