使用jQuery Searchable Select插件时如何提高性能(初始化大量选择时速度非常慢)

时间:2013-04-22 13:03:45

标签: jquery performance jquery-plugins drop-down-menu searchable

我正在使用jQuery可搜索选择插件http://effinroot.eiremedia.netdna-cdn.com/repo/plugins/forms-controls/searchabledropdown/index.html

如果我在页面上有少量选择,这可以正常工作但是我有一个很大的数字(一页上可以有几百个)。当我初始化插件时(通过类或循环ID)它需要很长时间(~10秒)并消耗所有系统资源。

当我运行设置代码时,我遇到了问题,例如:

$(document).ready(function() {
   $("select").searchable();
});

我所拥有的选择实际上是两次重复相同的两次。我尝试使用一个select(更快)进行初始化,然后复制然后复制(通过HTML和jQuery clone()),但复制的实例不可搜索。

有没有减少初始化插件大数或重复选择所需的时间?

1 个答案:

答案 0 :(得分:1)

调用clone时,是否将withDataAndEvents传递为true?我认为.clone(true)应该有效。确保您在选择克隆后进行克隆。

$(document).ready(function() {
    var clone_src = $('#originalSelectUser');
    $(clone_src).searchable({        });
    $(".dest").each(function(i) {
        $(clone_src).clone(true).attr('id', 'clone'+i).appendTo('#enddiv');
    });  
});

另一个想法可能是制作你需要的两个,只有隐藏。然后,当聚焦选择时,将其与匹配的隐藏选择的克隆交换。如果克隆不起作用,您可能需要在克隆后使用.searchable()调用对其进行初始化,但您不应该这样做。