I am using jquery custom search. is it feasible to use this search if there are around 10 million entries. Please suggest some other search functionality .
Presently in my mind I am thinking about "Big data or Hadoop" if it used for bulk entries.
$("#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...">
答案 0 :(得分:0)
理想情况下...如果追求的是速度,请不要使用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>