我正在使用PHP codeigniter 3.对于选择框,我使用jquery ajax调用,我从数据库中检索值并将它们附加到选择下拉列表。在每个键按下ajax被调用。但是在按键用户必须按住按下一个键之后,它使进程变慢。如何快速制作流程以便用户可以正常输入数据。我正在使用 async:false
$.ajax({
type:'POST',
cache:false,
async:false,
data: { 'search_val' : search_val },
url: URL,
success: function(data)
{
// Code to append
}
});
例如,对于自动完成选择框中的用户类型 a ,ajax将命中数据库并将检查以 a 开头的城市并在下拉列表中追加列表。那么如果他在 a 之后键入你,那么ajax会搜索以 au 开头的城市,所以在每个按键时ajax会在数据库中查找数据
答案 0 :(得分:1)
首先 - 不要使用同步请求。他们受伤......
第二 - 你可以在发送请求之前使用一些延迟 - 例如 - 没有按下任何键后300ms - 发送请求并获得所需的结果。
例如:
按键 - 写出类似的内容
if (timeoutId) clearTimeout(timeoutId);
timeoutId = setTimeout(searchValues(), 300);
使搜索值成为执行AJAX的函数。