是的,我知道,要求在Javascript正式的内存模型是一个没有希望的事业,所以我妥协,“所有的浏览器遵循这些规则”什么的。JavaScript中的内存模型
我的问题是这样的:我要送事件定义的时间间隔,以一台服务器,但事件可能,而这样做,被添加到我的阵列,即:
function storeEvent(event) {
// may be called at any time
storedEvents.push(event);
}
function broadcastEvents() {
if (storedEvents.length !== 0) {
var eventString = JSON.stringify(storedEvents);
storedEvents = [];
// send eventString to server
}
window.setTimeout(broadcastEvents, BROADCAST_TIMER);
}
有没有在一个明显的竞争条件在那里,甚至没有想到失踪的记忆障碍。
怎么办?真的在这里失踪了Java内存模型..
查看[这篇文章](http://stackoverflow.com/questions/7575589/how-does-javascript-handle-ajax-responses-in-the-background/7575649#7575649)简要描述了javascript事件队列的工作原理以及为什么这不是一个竞争条件。 – jfriend00
@ jfriend00谢谢 - 所以它基本上是没有重入的通常的消息泵实现。很高兴知道,即使除了“它是单线程的”之外没有关系:) – Voo
是的,这是描述它的好方法。 – jfriend00