【发布时间】:2015-12-11 21:24:28
【问题描述】:
我有一个带有 3 个键盘快捷键的应用程序。只有当焦点在网格上的一行内时它们才会被触发,所以我添加了一个监听器来处理这个问题:
if (grid) {
var host = grid.hostElement;
//handle the keydown event
host.addEventListener('keydown', function (e) {
if (e.altKey && e.key == "q") {
doSomething(grid);
}
if (e.altKey && e.key == "n") {
doSomethingElse(grid);
}
if (e.altKey && e.key == "u") {
doAThirdThing(grid);
}
});
}
这工作正常,但从性能的角度来看,这是处理此问题的最有效方法吗?我应该使用一个开关还是多个监听器?
【问题讨论】:
-
我建议你在 codereview 上发布这个:codereview.stackexchange.com
-
你想过什么样的性能提升?您可以通过提前从
if块重新调整来节省一两纳秒 ... -
您可以使用
Object来存储key => handler映射。
标签: javascript addeventlistener hotkeys