3

I know web workers work as a separate thread than the UI thread but i dont understand why they are not allowed to modify the DOM. I mean that you can allow inter thread communication and keep the DOM data in a shared space and have the web workers thread modify the DOM. Why is this not allowed in browsers?

lovesh
  • 5,235
  • 9
  • 62
  • 93
  • 1
    It happens on almost every programming language that does GUI: only the main thread can call GUI functions (eg: Android, Delphi) – LatinSuD Dec 27 '12 at 08:10

1 Answers1

7

Because the DOM is not threadsafe, and JavaScript does not expose a thread API.


See also:

Community
  • 1
  • 1
Matt Ball
  • 354,903
  • 100
  • 647
  • 710
  • 1
    _"A piece of code is thread-safe if it can be safely invoked by multiple threads at the same time."_ http://en.wikipedia.org/wiki/Thread_safety – Matt Ball Aug 16 '11 at 17:25
  • can you tell me some references where i can read more about thread safety of DOM? thanks – lovesh Aug 16 '11 at 17:40
  • 1
    It's not thread safe, and was never intended to be, since ***JavaScript does not have any concept of a thread*** or other concurrent/parallel constructs. That's it. – Matt Ball Aug 16 '11 at 17:56