エラーが発生したときに再生する明確なサウンドが必要です。エラーは、急速に入力されているおそらく 200 個のバーコードのうちの 1 つに問題があった結果です。イベント キューは最初にキーボード入力 (バーコード スキャナーがエミュレートする) を処理し、2 番目にサウンドの再生を処理するようです。そのため、バーコードがすばやくスキャンされると、エラー サウンドがキューに残り、次のスキャンでぶつかります。
キューの優先度を操作できますか?
エラーが発生したときに再生する明確なサウンドが必要です。エラーは、急速に入力されているおそらく 200 個のバーコードのうちの 1 つに問題があった結果です。イベント キューは最初にキーボード入力 (バーコード スキャナーがエミュレートする) を処理し、2 番目にサウンドの再生を処理するようです。そのため、バーコードがすばやくスキャンされると、エラー サウンドがキューに残り、次のスキャンでぶつかります。
キューの優先度を操作できますか?
Javascript はマルチスレッド化されていないため、オプション 2 は機能しません。そして、あなたが話しているイベント キューは OS のイベント キューであり、ブラウザーからアクセスする可能性は低いと思います。
それを超えて、私はあなたの問題を理解するのに少し苦労しています. エラー音を発しているのは何ですか?などのイベントですかkeyup
、それともエラー コードなどを返すサーバー側の検証ですか?
あなたの問題から推測できることは、ユーザーがエラー音を聞いたときにスキャンを停止することです。そうであれば、ユーザーがスキャンを停止するのを待つ必要はありません。
次のいずれかを実行できます。
エラーが発生するとすぐに、データの入力を停止します。false を返すように「keypress」を設定できます。また、最初に入力データを保存してから false を返す keypress イベントにバッファを設定することもできます。このようにして、エラーが発生した後にデータを取得します。
スキャンを ( を使用して) 遅延setTimeout()
させて、その間にサウンドの開始と終了を許可するとどうなるでしょうか?