оптимизация компонента "быстрый поиск"
Тут давича соорудил компонент для быстрого поиска по массиву строки, вводящейся в Эдит (поиск обеспечивает любое вхождение искомой строки). Для этого соорудил: Эдит(id="textF" ), под ним Див (id="div2"), в который вывожу массив(объявил его глобально) отсортированных строк.
Принцип действия: по введению буковки(ок) (количество букв, после которого начинается поиск можно изменять) в Эдит: <input id="textF" value="ввести символы" autocomplete="off" onkeyup="noNumbers(event)"> производится проверка вхождения набранной строки в строки, которые имеются в массиве. В результате чего, в Див2 помещаются все строки, в которых есть строка из Эдита. По нажатию стрелки "вверх"/"вниз " пожно, подсветив фоном, переместиться на интересующую запись и выбрать ее мышей или по нажатию на Энтер. Тормоза начинаются в зависимости от кол-ва строк в массиве (чем больше строк, тем медленнее происходит реакция на нажатие стрелок). Вот один из обработчиков: if (e.keyCode==38){ //нажатие на стрелку "вверх" if (child!=0){ if (index>=1) { div2.childNodes[index-1].style.backgroundColor = '#ccc'; div2.childNodes[index].style.backgroundColor = ''; index-=1; } else (index = -1) } return (false); } div2.childNodes[index] - строка с номером index (моя переменная), которая отображается в текущий момент обработчик onkeyup() взял так как он мне более подошел Вопросы: 1. чем могут быть вызваны эти тормоза? и 2. можно ли сделать чтоб при удерживании стрелки вниз/вверх происходило быстрое перемещение подсветки строк в Диве? |
Часовой пояс GMT +3, время: 19:00. |