Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 仅附加一次自动完成元素_Jquery_Jquery Ui_Autocomplete - Fatal编程技术网

Jquery 仅附加一次自动完成元素

Jquery 仅附加一次自动完成元素,jquery,jquery-ui,autocomplete,Jquery,Jquery Ui,Autocomplete,我的自动完成脚本有问题。除了IE8,它在任何地方都可以正常工作。当列表很大时,整个页面将变得无响应,并且在IE8中CPU使用率几乎达到100% _renderItem = function(ul, item) { var html = ""; if (item.NoDataFound) { html = "No data found"; } else { if (textField.val() !=

我的自动完成脚本有问题。除了IE8,它在任何地方都可以正常工作。当列表很大时,整个页面将变得无响应,并且在IE8中CPU使用率几乎达到100%

_renderItem = function(ul, item) {
        var html = "";
        if (item.NoDataFound) {
            html = "No data found";
        } else {
            if (textField.val() != "") {
                html = item.DisplayName.replace(new RegExp("(" + preg_quote(textField.val()) + ")", 'gi'), "<strong>$1</strong>"); // suggest message & Highlight matching part
            } else {
                html = item.DisplayName;
            }
        }
        return $("<li><a>" + html + "</a></li>")
            .data("item.autocomplete", item)
            .appendTo(ul);
    };
\u renderItem=功能(ul,项目){
var html=“”;
if(item.NoDataFound){
html=“未找到数据”;
}否则{
如果(textField.val()!=“”){
html=item.DisplayName.replace(新的RegExp(“+preg_quote(textField.val())+”,“gi”),“$1”;//建议消息并突出显示匹配部分
}否则{
html=item.DisplayName;
}
}
返回$(“
  • ”+html+“
  • ”) .data(“item.autocomplete”,item) .附录(ul); };

    问题可能是附加到(ul)行,它将每个项目单独附加到ul。例如,当到达最后一个元素时,是否可以只附加一次整个列表?

    是否使用本地数据源?如果是的话,里面有多少物品?大约需要装载1000件物品。它们是通过ajax调用获取的。它们是一次加载的,还是在服务器上完成搜索?如果您在本地搜索1000个项目,将导致IET出现问题。服务器只返回所需的结果。就我而言,可能有1000多个。调试我的代码我可以看到IE最耗时的任务是_renderItem函数和_refresh函数。难道没有办法为IE优化它更多,只是为了尽可能地提高它的性能吗?在我看来,这个功能非常简单。我建议将建议的结果限制在每次10个。用户真的需要看到1000条建议吗?对我来说,这似乎是一份难以管理的清单。但不确定您的应用程序是什么。