ampproject / worker-dom

The same DOM API and Frameworks you know, but in a Web Worker.
Apache License 2.0
3.21k stars 152 forks source link

Implemented the NodeIterator interface for WorkerDOM #1187

Open knownotunknown opened 10 months ago

knownotunknown commented 10 months ago

I implemented the NodeIterator interface from DOM API for WorkerDOM.

This opens up the possibility for computationally expensive DOM traversal algorithms to be ran in a web worker to avoid any unresponsive user experiences.

Example use-case: Mark.js is a fully-featured highlighter that works by finding target texts within DOM elements, splitting those DOM elements, and applying a highlighter class for the new target text DOM element: https://github.com/julkue/mark.js.

In the worst-case, it can crash the tab. This PR within WorkerDOM would prevent that (although it would double the actual time to complete which also isn't a great real-world solution).

Nonetheless, the possibilities of being able to run complex DOM traversal algorithms seems interesting.

CLAassistant commented 10 months ago

CLA assistant check
All committers have signed the CLA.