2008-11-11 78 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。這樣你就可以在錯誤發生後獲得數據。