javascript - Firefox 中带有 onkeyup 监听器的文本框中缺少字符

标签 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;
}

最佳答案

也许让它异步并具有某种控制,以便在一个请求仍在进行时不触发它。在这种情况下,我认为它更有意义,也可能解决您在 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("#");

   }
}

关于javascript - Firefox 中带有 onkeyup 监听器的文本框中缺少字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30247283/

相关文章:

javascript - 如何对具有两个字段的对象进行排序?

ajax - 为什么 javascript eval 在 chrome、safari 中可以工作,但只有在 firebug 打开时才能在 firefox 中工作?

jquery - 将图像/文本/文件名拖到 Firefox 页面上

javascript - 在任何给定时间仅允许 Backbone 集合中的一个模型具有事件属性

javascript - 如何将焦点从 iframe 中移出?

javascript - 粘贴键盘快捷键后调用JS函数?

javascript - 如何知道输入中输入的最后一个字符 - Javascript

javascript - ckeditor onKeyUp 事件如何?

javascript - 更改::before 伪类中的 'content' 属性

debugging - 如何确认 FireFox 使用的是 Flash Player 的调试版本?