Firefox 中带有 onkeyup 侦听器的文本框中缺少字符
Missing characters in text box with onkeyup listener in Firefox
我有一个文本字段,用户可以使用它来搜索项目。附加了一个 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("#");
}
}
我有一个文本字段,用户可以使用它来搜索项目。附加了一个 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("#");
}
}