在按键上处理ajax呼叫

时间:2016-12-06 14:40:24

标签: javascript php ajax codeigniter

我正在使用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会在数据库中查找数据

1 个答案:

答案 0 :(得分:1)

首先 - 不要使用同步请求。他们受伤......

第二 - 你可以在发送请求之前使用一些延迟 - 例如 - 没有按下任何键后300ms - 发送请求并获得所需的结果。

例如:

按键 - 写出类似的内容

if (timeoutId) clearTimeout(timeoutId);
timeoutId = setTimeout(searchValues(), 300);

使搜索值成为执行AJAX的函数。