繁体   English   中英

如何降低jquery搜索时间复杂度

[英]How to reduce jquery search time complexity

我正在使用 jquery 自定义搜索。 如果有大约 1000 万个条目,使用此搜索是否可行。 请建议一些其他的搜索功能。

目前在我的脑海中,如果用于批量条目,我正在考虑“大数据或 Hadoop”。

 $("#searchInput").on("keyup", function () { var value = $(this).val().toLowerCase(); $("#itemTable tr").filter(function () { $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1); }); ar t1 = performance.now(); alert("Call to doSomething took " + (t1 - t0) + " milliseconds."); }); // <---- The function you're measuring time for });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <input class="form-control" id="searchInput" placeholder="Search...">

理想情况下...如果速度是您所追求的,请不要使用 jQuery。 但是,这是 jquery 中的一个快速版本,可以让它现在工作。

基本上,选择元素是昂贵的,所以尽可能多地在keyup功能之外进行选择。 您错误地使用了.filter()方法,它过滤掉了以前的 jQuery 选择器。

现在,当您键入时,它会显示所有内容,并隐藏所有匹配的内容。

 var $rows = $("#itemTable tr"); $("#searchInput").on("keyup", function() { $rows.show(); var value = this.value.toLowerCase(); var $rowsTohide = $rows.filter(function() { return $(this).text().toLowerCase().indexOf(value) === -1; }); $rowsTohide.hide(); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <input type="search" class="form-control" id="searchInput" placeholder="Search..."> <table id="itemTable"> <tr><td>FOO</td></tr> <tr><td>bar</td></tr> <tr><td>baz</td></tr> <tr><td>hello</td></tr> </table>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM