

ブラウザの Edge で JavaScript でキー入力を受け取る時、  
たまにタイミングがおかしくなるのは気のせいなのでしょうか？

一番わかりやすい例だと、方向キーの右を押しっぱなしにして、  
方向キーの上を押したり離したりすると、押したタイミングが0.5秒くらい遅くなることがあります。  
他にも、押したこと自体が認識されなかったり、  
もう離したキーが押しっぱなしと見做されてしまったりします。

単純に onkeydown と onkeyup でキーイベントを受け取ってフラグを書き換え、  
各キーのフラグを setInterval で20ミリ秒の間隔で canvas に描画するだけのプログラムでテストしてます。

他のページでも同様の現象が発生しました。  
（というより、それで気づいて調べてしてみたんです）

このような現象について、何かご存知の方はいらっしゃいませんか？


CC BY-SA 3.0
2017-01-04T09:15:48.870
31610
2018-11-28T10:02:55.573
20097
question
javascript html5
Edge で JS のキー入力のタイミングがずれる現象？


ブラウザやJavascriptの問題ではなくハードウエアやOS関係の仕様かと思います。

キーボードの機能(仕様)に下記の2つがあります。  
・押しっぱなしにした際に連打した時と同じ動作にする。(ドライバやBIOSによっては連打間隔を変更できる)  
・キー入力の受付処理の速度より早くキーが連続して入力された場合、入力をバッファに貯めて順次入力の受付処理を行う。(バッファのサイズはアプリや環境等で大小の差がかなりある)

「入力がアプリケーションの速度を超えた為、遅れてキーボードバッファーから入力されている状態」が質問の状態と思われます。


CC BY-SA 3.0
2017-01-11T09:48:59.897
31775
2017-01-11T09:48:59.897
19995
31610
answer