O JavaScript é único segmentado? Se não, como obtenho acesso sincronizado a dados compartilhados?

Eu tenho uma página web comDIVs com ummouseover manipulador que se destina a mostrar uma bolha de informações pop-up. Não quero que mais de um balão de informações seja visível por vez. Mas quando o usuário move o mouse rapidamente sobre dois itens, às vezes recebo duas bolhas. Isso não deve acontecer, porque o código para mostrar um pop-up cancela o pop-up anterior.

Se este fosse um sistema multi-threaded, então o problema seria óbvio: há dois tópicos tentando mostrar um pop-up, e ambos cancelam os pop-ups existentes e então exibem seus próprios pop-ups. Mas eu assumi que o JavaScript é sempre executado single-threaded, o que impediria isso. Estou errado? Os manipuladores de eventos estão sendo executados de forma assíncrona e, nesse caso, preciso de acesso sincronizado a dados compartilhados ou, em vez disso, estou procurando bugs no código da biblioteca para cancelar pop-ups?

Editado para adicionar:

A biblioteca em questão éLinha do tempo SIMILE e sua biblioteca Ajax;O manipulador de eventos chamaSimileAjax.DOM.cancelEvent(domEvt), que eu assumo baseado no nome cancela o borbulhar de eventos;Só para tornar as coisas mais complicadas, o que estou realmente fazendo é começar um tempo que, se não for cancelado por ummoustout mostra o pop-up, com a intenção de evitar pop-ups piscando irritantemente, mas irritantemente tendo o efeito reverso.

Vou dar outra cutucada e ver se consigo descobrir onde estou indo errado. :-)

questionAnswers(7)

yourAnswerToTheQuestion