Firefox中的onkeyup侦听器在文本框中缺少字符

时间:2015-05-14 21:02:49

标签: javascript firefox onkeyup

我有一个用户可以用来搜索项目的文本字段。附加了onkeyup侦听器,可根据输入的内容搜索数据库。在Chrome中,这非常有效,但在Firefox中有滞后,快速打字机会在文本字段中看到缺少的字符。这是一个Firefox问题还是有解决方法?

为了大致了解我在代码中所做的事情,我有类似的东西:

HTML

<input type="text" onkeyup="makeRequest()">

JS

function makeRequest() {
   var xmlhttp = new XMLHttpRequest();
   xmlhttp.open("POST", url + parameters, false);
   xmlhttp.send("#");
   return xmlhttp.responseText;
}

1 个答案:

答案 0 :(得分:1)

也许让它异步并进行某种控制,以便在一个请求仍在进行时不触发它。在这种情况下,我认为它会更有意义,也可能解决你在Firefox上的问题。

现在,如果有人快速输入很多字母,你就会发送不必要的请求。

就像那样:

//html file

<input type="text" onkeyup="makeRequest()">

//java script file

function makeRequest() {
  if(!req_called){
      req_called = true; 
      var xmlhttp = new XMLHttpRequest();
      xmlhttp.open("POST", url + parameters, true);
      xmlhttp.load = function(){
          req_called = false;
          return xmlhttp.responseText;

      }
      xmlhttp.send("#");

   }
}