Mam duży stół z prawie 5000 rzędów. Korzystam z poniższego fragmentu jquery, aby wyszukać tę tabelę dla określonego tekstu.wyszukiwanie w tabeli html
function searchTable(inputVal) {
var table = $('.table');
table.find('tr').each(function(index, row) {
var allCells = $(row).find('td');
if(allCells.length > 0) {
var found = false;
allCells.each(function(index, td) {
var regExp = new RegExp(inputVal, 'i');
if(regExp.test($(td).text())) {
found = true;
return false;
}
});
if(found == true) {
$(row).show();
} else {
$(row).hide();
}
}
});
}
Ten skrypt wymaga trochę czasu, aby wykonać, ponieważ pętle przechodzą przez każdą komórkę każdego wiersza. Biorąc pod uwagę tabelę zawierającą 6 komórek z rzędu, całkowita liczba iteracji wynosi prawie 6 * 5000 = 30000!
Czy są jakieś sugestie dotyczące optymalizacji tego fragmentu kodu?
ruch 'var regexp = new RegExp (inputVal, 'I');' 'się obok var table' – ahren
dzięki ... Doceniam to –
Czy 'inputVal' jest naprawdę wyrażeniem regularnym? Jeśli jest to tylko ciąg tekstu, znacznie szybciej byłoby użyć funkcji wyszukiwania ciągów. – JJJ