Jquery 列表项的预筛选+客户端的一些UI操作。可以加快速度吗?
有没有办法加快这一进程Jquery 列表项的预筛选+客户端的一些UI操作。可以加快速度吗?,jquery,Jquery,有没有办法加快这一进程 this.preFilter = function ($sourceSelector, text) { var regex = new RegExp(text, 'i'); $sourceSelector.each(function() { if ($(this).text().match(regex)) { $(this).show(); } else { $(this).c
this.preFilter = function ($sourceSelector, text) {
var regex = new RegExp(text, 'i');
$sourceSelector.each(function() {
if ($(this).text().match(regex)) {
$(this).show();
} else {
$(this).children().first().attr('disabled', 'disabled');
$(this).children().last().removeClass('addGroupMemberButtonClicked').addClass('addGroupMemberButton').button('option', 'icons', { primary: 'ui-icon-plusthick' });
$(this).hide();
}
});
};
现在,在5000个元素上大约需要0.5秒。问题是我不想提出额外的AJAX请求——我的富客户机UI中已经有很多AJAX请求了。我不喜欢使用儿童和第一/最后一个选择器-它们不灵活,以防将来布局会发生变化。但是当我使用find时,它花费了7秒,这当然是不可接受的
更新:用jQuery小部件装饰所有这些按钮不是一个好主意,不应用按钮循环会快3倍。此外,标记并不是最优的——即使按钮并没有文本,也会有一些空白范围:但创建布局的不是我,而是设计师。我可以看看由小部件创建的标记中与UI相关的类,然后删除它们。但我想,这不是一种正确的做法:将来这些小部件可能会改变,类名也会不同,等等
HTML
任何人都需要更多的上下文来帮助解决这个问题。@charlietfl相关的标记已经添加。谢谢
<div style="width: auto; min-height: 2px; max-height: none; height: auto;" id="ui-id-28" class="addGroupMember ui-dialog-content ui-widget-content" data-title="Add participant">
<input value="" name="usersearch" class="userSearchField" placeholder="Search user name" type="search">
<input value="" name="" class="userSearchButton" type="button">
<ul class="userList">
<li>
<input value="**" name="Id" class="" disabled="disabled" data-is-key="True" type="hidden">Wvgtsnewp zhnu
<button title="" role="button" class="addGroupMemberButton ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" type="button">
<span class="ui-button-icon-primary ui-icon ui-icon-plusthick"></span>
<span class="ui-button-text">
<span class=""></span>
<span class=""></span>
</span>
</button>
</li>
<li>and so still half of thousand items</li>
</ul>
</div>