我有一个 JavaScript/jQuery Web 应用程序,其中包含一个对象,用户可以通过 DOM 事件以及服务器通过 Web 套接字或 xhr 访问该对象。
我知道 JavaScript 是单线程的。尽管如此,我怀疑在这种设置中,有问题的对象可能会受到竞争条件的影响,我想知道在 JavaScript 中没有锁的情况下如何处理这个问题。
我有一个 JavaScript/jQuery Web 应用程序,其中包含一个对象,用户可以通过 DOM 事件以及服务器通过 Web 套接字或 xhr 访问该对象。
我知道 JavaScript 是单线程的。尽管如此,我怀疑在这种设置中,有问题的对象可能会受到竞争条件的影响,我想知道在 JavaScript 中没有锁的情况下如何处理这个问题。
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
嗯......我想你可以写一个“锁”,如果你说的是多个事物每个都需要独占使用对象,这些使用跨越多个事件。
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.