Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2009, 12:43
Новичок на форуме
Отправить личное сообщение для !JAlex_ Посмотреть профиль Найти все сообщения от !JAlex_
 
Регистрация: 18.11.2008
Сообщений: 7

оптимизация компонента "быстрый поиск"
Тут давича соорудил компонент для быстрого поиска по массиву строки, вводящейся в Эдит (поиск обеспечивает любое вхождение искомой строки). Для этого соорудил: Эдит(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. можно ли сделать чтоб при удерживании стрелки вниз/вверх происходило быстрое перемещение подсветки строк в Диве?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск