【问题标题】:Missing characters in text box with onkeyup listener in FirefoxFirefox 中带有 onkeyup 侦听器的文本框中缺少字符
【发布时间】:2015-05-14 21:02:49
【问题描述】:

我有一个文本字段,用户可以使用它来搜索项目。附加了一个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;
}

【问题讨论】:

  • 也许尝试添加一些代码..

标签: javascript firefox onkeyup


【解决方案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("#");

   }
}

【讨论】:

    猜你喜欢
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2012-09-30
    • 2013-08-22
    • 2021-01-26
    相关资源
    最近更新 更多