From 5d976dd594973457734082988cb038920e047a67 Mon Sep 17 00:00:00 2001 From: origamifreak2 Date: Wed, 18 Jan 2023 23:18:13 -0500 Subject: [PATCH] speed up filtering of tags Added special case to handle zero length filter string. Also found that hiding all tag elements by default speeds up filtering. I'm not exactly sure why this speeds it up, but it did in my tests. --- MiniIndex/wwwroot/js/edit.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/MiniIndex/wwwroot/js/edit.js b/MiniIndex/wwwroot/js/edit.js index 0bc1d86..f0c805b 100644 --- a/MiniIndex/wwwroot/js/edit.js +++ b/MiniIndex/wwwroot/js/edit.js @@ -1,4 +1,4 @@ -document.addEventListener("DOMContentLoaded", () => { +document.addEventListener("DOMContentLoaded", () => { RefreshTagsStart(); RefreshTagsEnd(); }); @@ -19,11 +19,19 @@ document.getElementById("tagSearch").addEventListener("input", function (e) { let addTagBtns = document.querySelectorAll(".add-tag"); let addTagBtnsArray = Array.prototype.slice.call(addTagBtns); addTagBtnsArray.forEach(function (ele) { - if (ele.innerText.toLocaleLowerCase().indexOf(tagFilter) >= 0) { + hideEle(ele); + }); + addTagBtnsArray.forEach(function (ele) { + if(tagFilter.length > 0){ + if (ele.innerText.toLocaleLowerCase().indexOf(tagFilter) >= 0) { + showEle(ele); + showEle(ele.parentNode); + } else { + hideEle(ele); + } + }else{ showEle(ele); showEle(ele.parentNode); - } else { - hideEle(ele); } }); return false;