質問: こんにちは。 タブキーを使って画面上の項目を移動する際の処理と、マウス操作で項目を指定する場合の処理の違いについて、質問させていただきます。 ### 使用ブラウザ IE11(Edge) ### 実現したいこと ブラウザ上に1000個以上のテキストボックスがあり、そこにデータを表示しています。個々に対して変更が可能で、都度チェック処理をJavaScriptで行っています。そのテキストボックスをタブキーで移動したいと思っています。 ### 発生している問題 タブキーによる移動はできているのですが、動作が重く、隣のテキストボックスに移動するのに5秒以上かかってしまいます。(tabIndexを全てのテキストボックスに設定しています。) マウスで隣のテキストボックスにフォーカスを当てる場合は特に問題ありません。 一つのテキストボックスからフォーカスアウトして、次のテキストボックスにフォーカスインをしているので、同じだと思っていたのですが、何か違うのでしょうか。 IEの開発ツールを用いてUIの応答、プロファイリングを確認したのですが、タブキーによる移動の場合は数秒間CPUの使用率が100近くまであがっていました。チェック処理のせいかと思ったのですが、マウスで操作した場合は1秒足らずで処理が完了しています。 チェック処理が重いとは思っているのですが、隣のテキストボックスに移動するだけでどうしてこれほど時間に差が出るのか、ご教示頂ければと思います。
回答: チェック処理のトリガー(契機)が分からないのですが、チェック処理が原因かどうかの切り分けはできそうです。 チェック処理を外して(ソース削除なり、全部コメントアウトなり)、タブによる移動とマウスクリックによる移動を行うと、動作やCPU負荷に違いは出ますでしょうか? もしチェック処理を外した場合に動作が重くならない(軽いまま)なのであれば、チェック処理が重いこととなります。