Тема: Як оптимізувати скрип перебору

Є функція яка приймає параметр
selectedText - рядок для пошуку елементів у
DDL - dropdownlist DOM елементі

Якщо є збіг елемент показується, в іншому випадку приховується
Показ і приховування елементу здійснюється за допомогою display css властивості

function FilterOrganisations(selectedText, DDL, skipFirstItem = true)
{
    var rval = selectedText.toUpperCase();

    var i = skipFirstItem ? 1 : 0;
    for (; i < DDL.length; i++) {
        var currentItem = DDL.item(i);

        var lval = currentItem.innerText.toUpperCase();
        
        if(lval.includes(rval))
        {
            currentItem.style = "display: block;";
        }
        else
        {
            currentItem.style = "display: none;";
        }

        DDL[i] = currentItem;
    }
}

Ось "живий" приклад

Введіть ever в поле вводу і натисніть на dropdownlist

https://jsfiddle.net/4hx3g72d/1/

Як можна оптимізувати FilterOrganisations функцію, оскільки зараз вона повільно працює ?

2

Re: Як оптимізувати скрип перебору

Тримайте реальний список десь окремо, а при фільтрації додавайте/прибирайте потрібні поля в розкривному списку.
Зараз ви фактично перемальовуєте довжелезний список зі стилями, це й гальмує.

Подякували: Betterthanyou1

3

Re: Як оптимізувати скрип перебору

koala написав:

Тримайте реальний список десь окремо, а при фільтрації додавайте/прибирайте потрібні поля в розкривному списку.
Зараз ви фактично перемальовуєте довжелезний список зі стилями, це й гальмує.

так, допомогло. Дякую