输入字段搜索时自动完成结果非常慢

时间:2018-03-07 07:42:55

标签: javascript jquery codeigniter jquery-ui-autocomplete

我有一个输入字段。当用户键入某个值时,它必须根据用户搜索自动完成。我正在使用以下代码。我正在获取数据,但如果结果超过50并且有时系统崩溃,它会变得很慢。

如何改进我的代码以使其正常工作。

$( "#cc" ).autocomplete({
    delay: 0,
    source: function(request, response) {
        $.ajax({
            url: "<?php echo site_url('registration/getData'); ?>",
            data: { term: $("#cc").val()},
            dataType: "json",
            type: "POST",
            success: function(data) {
                console.log(data);
                if(data.response == "true"){
                    response(data.message);
                }
            }
        });
    },
    minLength: 1
});

2 个答案:

答案 0 :(得分:0)

你应该使用去抖(查找,非常有用),你的API应该返回最多5条记录。添加到查询LIMIT。如果你将api调用用于另一个你需要很多用户的函数。使LIMIT动态化。

答案 1 :(得分:0)

您应该考虑使用油门/去抖或至少使用延迟。 这样您就可以减少服务器的负载,并为用户提供更好的响应体验。

简而言之:

节流:每个指定时段最多调用一次原始函数。

去抖:在调用者在指定的时间段后停止调用修饰函数后调用原始函数。