javascript - jQueryUI : Autocomplete with large data is hanging browser

标签 javascript jquery jquery-ui autocomplete

我正在使用jQueryUI's autcomplete在我的项目中。我有一个自动完成文本,用户在其中搜索某些内容,相应的数据出现在下拉列表中。

对于小数据集,它工作得很好。当数据集很大时就会出现问题。我有近 1L strip 有唯一值的记录,我已将这些记录作为源附加到自动完成

现在,只要用户在文本栏中输入搜索字符串,浏览器就会因 jQueryUI 的 autocomplete 的处理而挂起。

我想知道如何优化它或使其更快,以便浏览器不会挂起。这是plunkr我创造是为了玩。这就是我正在做的将源代码附加到自动完成的操作。

$("#tags").autocomplete({
      source: availableTags
});

最佳答案

不再显示所有 50000 条记录,仅显示前 10 条记录。最小搜索字符长度从默认的 0 增加到 2

$(function () {
            var availableTags = [
              "ActionScript",
              "AppleScript",
              "Asp",
              "BASIC",
              "C",
              "C++",
              "Clojure",
              "COBOL",
              "ColdFusion",
              "Erlang",
              "Fortran",
              "Groovy",
              "Haskell",
              "Java",
              "JavaScript",
              "Lisp",
              "Perl",
              "PHP",
              "Python",
              "Ruby",
              "Scala",
              "Scheme"
            ];
            for (var i = 0; i < 50000; i++) {
                availableTags.push('abc' + i);
            }
            $("#tags").autocomplete({
                minLength: 2,
                source: function (request, response) {
                    var results = $.ui.autocomplete.filter(availableTags, request.term);

                    response(results.slice(0, 10));
                }
            });
        });
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css">

    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>

 <div class="ui-widget">
        <label for="tags">Tags: </label>
        <input id="tags">
    </div>

关于javascript - jQueryUI : Autocomplete with large data is hanging browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38990286/

相关文章:

Jquery DatePicker 在 PopUp 关闭后不隐藏

javascript - ajax下载的excel文件已损坏

javascript - 将鼠标悬停在元素上时使图像跟随光标

javascript - 仅当文本区域中有字符时才启用提交按钮

javascript - 检查密码是否相等 jQuery

单击 div 但不是其嵌套 div 时的 jquery 函数

javascript - 在包含 JsonIdentityInfo 的 JavaScript 中反序列化 Jackson 对象

javascript - 如何从长字符串中提取数字

javascript - 如何为新加载的元素提供 JQuery UI 工具提示?

Javascript 隐藏/显示部分在重置时不起作用