jquery - 缓慢加载 jQuery 自动完成

标签 jquery autocomplete

您好,我正在使用 jQuery 为我的公司构建一个内部应用程序 autocomplete我发现它往往开始得很慢。我的假设是,瓶颈可能是将其元素添加到 DOM 中,因为在第一次查询之后,它似乎要快得多。有谁知道一种在页面加载时预加载这些元素的方法,而不是在用户开始输入时第一次加载这些元素?

最佳答案

如果您不必使用 ajax 调用来检索数据,并且您的自动完成列表不是太大,您可以从 js 对象数组中提供自动完成数据。

假设您有这样的数据(您可以尽早构建):

var data = [{"n":name, "p":pagename,"c":number_of_results},...];

然后自动完成调用将如下所示:

$("#autocomplete").autocomplete(data, {
    matchContains: true,
    formatItem: function(row, i, max) {
        return row.n + " ("+row.c+")";
    },
    formatMatch: function(row, i, max) {
        return row.n;
    },
    formatResult: function(row) {
        return row.n;
    }

});
$("#autocomplete").result(function(event, data, formatted) {
    if(!data) {
        alert("Please select an item");
    } else {
        window.location.href =  data.p;
    }
});

这将创建一个类似于项目名称(结果数)的自动完成功能,并且在单击某个项目时,它将重定向到相应的项目页面名称。

我有大约 1,000 个项目,自动完成速度很快。

关于jquery - 缓慢加载 jQuery 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609074/

相关文章:

jquery - 突出显示包含来自输​​入的搜索文本的 td

c# - 通过 Windows 注册表禁用 IE11 中的自动完成

ruby-on-rails - 使用rails form_tag关闭自动完成功能

javascript - Google Place Autocomplete Address API 强制 HTML Autocomplete = Off

javascript - 为什么名为 'index.js' 的 JavaScript 文件在 Django 模板中不起作用?

jquery - 如何使某些日期在 html 日期表单中不可用

jquery - 当尺寸改变时保持 div 内的元素相同

asp.net - 使用 JQuery 更改表格边框颜色

javascript - 当文本字段不为空时,Ajax 自动完成 jquery 不起作用

javascript - visual studio 代码和 Parse.com 自动完成?