2008-11-11 81 views
4

发生错误时,我需要播放清晰的声音。这个错误是由于大概有200个条形码中的一个被迅速输入而导致的。事件队列似乎首先处理键盘输入(条形码扫描器模拟),然后播放我的声音。因此,如果条形码被快速扫描,错误声音会留在队列中,被下一次扫描碰撞。我可以在JavaScript中更改事件队列优先级吗?

我可以操纵队列的优先级吗?

+0

你说的这个队列是什么?小心分享代码的相关部分,或至少说明一个示例,说明这个队列是什么? – 2008-11-11 19:45:39

+1

这不是我写的代码。这是所有JavaScript引擎中内置的事件队列。我碰巧使用Firefox的。 – dacracot 2008-11-11 19:53:03

+0

是的,但你如何与它互动?条形码是如何验证的以及在什么事件上。它是在按键事件还是文本框的模糊事件?什么是然后被引发声音播放?我认为你的问题是模糊的,任何人都很有用。 – 2008-11-12 15:08:15

回答

1

Javascript不是多线程的,所以选项2不起作用。我怀疑你提到的事件队列是操作系统的事件队列,如果可能的话,它不可能从浏览器访问。

除此之外,我对理解您的问题有点困难。什么是发射错误的声音?这是一个keyup等事件,还是服务器端验证返回错误代码或其他?

0

如果您尝试延迟扫描(使用setTimeout()),允许声音在它们之间开始和结束,该怎么办?

1

我可以从你的问题猜测是用户停止扫描,当他听到错误的声音。如果这是真的,为什么等待用户停止扫描。

您可以执行以下任何操作。

只要发生错误就停止输入数据。你可以设置'keypress'来返回false。你也可以在keypress事件上设置一个缓存,它首先存储输入数据,然后返回false。这样你就可以在错误发生后获得数据。