1

我有一个 JavaScript/jQuery Web 应用程序,其中包含一个对象,用户可以通过 DOM 事件以及服务器通过 Web 套接字或 xhr 访问该对象。

我知道 JavaScript 是单线程的。尽管如此,我怀疑在这种设置中,有问题的对象可能会受到竞争条件的影响,我想知道在 JavaScript 中没有锁的情况下如何处理这个问题。

4

3 回答 3

1

There is a sort of lock in JavaScript: when you are sending you AJAX-request (native XMLHttpRequest) you can set asynchronous property to false so browser window will be kind of "locked" for any interactions from a user until it recieves an answer from server for the ajax-request being sent.

follow mozilla dev docs for more details

于 2013-06-14T22:26:28.733 回答
1

嗯......我想你可以写一个“锁”,如果你说的是多个事物每个都需要独占使用对象,这些使用跨越多个事件。

这是一个概念证明:https ://github.com/chris-martin/lock.js

于 2013-06-15T03:21:02.203 回答
0

The socket will write via events just like the user would. Events will get queued no matter what the source is. There's not need to worry about concurrency issues.

于 2013-06-14T22:26:29.090 回答