如何提高 "on keyup" 速度?

How to improve "on keyup" speed?

这是我的代码:

$('#MyInput').on('keyup', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});

我想 运行 一个函数,当 input 只有一个字符时。

问题是,如果用户键入一个单词的速度非常快,'keyup' 事件似乎是从第二个字符开始调用的,这意味着它不会调用 ajaxSearch() 方法。

有什么方法可以提高'keyup'只有1个字符时调用函数的事件速度吗?

当用户打字太快时,he/she可能还没有释放上一个键,所以keyup技术上还没有发生。

尝试 keypress 而不是 keyup

$('#MyInput').on('keypress', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});

编辑

keypressinputvalue属性还没有更新,所以赶上keyup以及 case 用户只输入一个字符.

$('#MyInput').on('keypress', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});

$('#MyInput').on('keyup keypress', function(e) {
  if ($(this).val().length == 1) {
    ajaxSearch($(this).val(),e);
  }
});

function ajaxSearch(value,e) {
  console.log(value, e.type)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="MyInput">

尝试按键而不是按键

$('#MyInput').on('keypress', function (e) {
      if ($(this).val().length == 1) {
          ajaxSearch($(this).val());
     }
});