Ajax PHP - keyup 函数错误(慢查询)
Ajax PHP - keyup function Bug (Slow Query)
我正在构建一个应用程序以使用 ajax 获取记录数据库。我正在使用 keyup 函数来捕捉我的 querying/writing。但有时当我写类似 "si" 的东西时,数据库中有很多记录,查询比我写下一封信花费的时间更多,这个错误就会发生。 (查询 'sitre' 但 PHP 只捕获 'si'):
我的问题是,有没有办法解决这个问题?
我的 JS 代码:
<script>
$(document).ready(function(){
load_data();
function load_data(query) {
$.ajax({
url:"fetch.php",
method:"POST",
data:{query:query},
success:function(data)
{
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(){
var search = $(this).val();
if(search != '') {
load_data(search);
} else {
load_data();
}
});
});
</script>
谢谢。
由于 Taron Saribekyan
延迟修复
<script>
var timeout = null;
$(document).ready(function(){
load_data();
function load_data(query) {
$.ajax({
url:"fetch.php",
method:"POST",
data:{query:query},
success:function(data)
{
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(){
var search = $(this).val();
clearTimeout(timeout);
if(search != '') {
timeout = setTimeout(function () {
load_data(search);}
, 500);
} else {
load_data();
}
});
});
</script>
设置 ajax 查询前的延迟。
See how to do it
我正在构建一个应用程序以使用 ajax 获取记录数据库。我正在使用 keyup 函数来捕捉我的 querying/writing。但有时当我写类似 "si" 的东西时,数据库中有很多记录,查询比我写下一封信花费的时间更多,这个错误就会发生。 (查询 'sitre' 但 PHP 只捕获 'si'):
我的问题是,有没有办法解决这个问题? 我的 JS 代码:
<script>
$(document).ready(function(){
load_data();
function load_data(query) {
$.ajax({
url:"fetch.php",
method:"POST",
data:{query:query},
success:function(data)
{
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(){
var search = $(this).val();
if(search != '') {
load_data(search);
} else {
load_data();
}
});
});
</script>
谢谢。
由于 Taron Saribekyan
延迟修复<script>
var timeout = null;
$(document).ready(function(){
load_data();
function load_data(query) {
$.ajax({
url:"fetch.php",
method:"POST",
data:{query:query},
success:function(data)
{
$('#result').html(data);
}
});
}
$('#search_text').keyup(function(){
var search = $(this).val();
clearTimeout(timeout);
if(search != '') {
timeout = setTimeout(function () {
load_data(search);}
, 500);
} else {
load_data();
}
});
});
</script>
设置 ajax 查询前的延迟。 See how to do it