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.
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.