Ayavryk

Ayavryk
Рейтинг
209
Регистрация
11.10.2003
дани мапов:
Даже если человек вводит со скоростью от 1 символ/полсекунды, то выигрыш в микросекунду тут ничего не даст.

Зависит от сложности задачи. Иногда отказ от лишнего обращения к DOM дает резкий прирост скорости. К тому же речь идет не только о скорости но и об удобстве отладки. - стек вызова не замусоривается ничем лишним.

дани мапов:
приведите конкретное решение

Я уже приаел конкретное решение - вынести функцию обработчик и обращаться к нему напрямую

var someclick = function(){...}

$('body').on('keyup', '#ajaxSearchString', someclick);

$('body').on('click', '.keypad div', function() {... someclick();});

дани мапов:
Я что написал ему тысячу строк кода?

всего одну - описание обработчика:

var f = ...

дани мапов:
Что может быть непонятного в использовании функции "trigger", например для вас? Чем это замаскировано? .

Тем что функция вызывается через длинную-длинную цепочку обработчиков jquery. Если не верите - посмотрите fireBug. У меня получилось 7 вызовов левых jquery-процедур от триггера до вызова того что нужно было вызвать. Во-первых это неоправданная трата ресурсов, во вторых осложняет локализацию источника вызова. А в третьих - зачем вот так через одно место????

jquery - замечательная библиотека, но иногда прививает какие-то странные шаблоны.

1. Туманно ровно до тех пор пока не придется столкнуться с чужим кодом на несколько тысяч строк, в котором программа сама собой жамкает по кнопкам. Причем делает это неправильно, в самый неподходящий момент, да еще и отложено по таймеру. Такой код я как раз унаследовал от предыдущего верстальщика.

2. Все что используется повторно, лучше оформлять в виде отдельных функций, переменных, объектов.

Например в тексте и вас и у топикстартера дважды используется $('#ajaxSearchString')

В принципе ничего страшного. Но отсутствие привычки такой подход рано или поздно приведет к тормозам.

В JS масивы, числа, строки - все является объектами.

new - означает создание объекта определенного типа.

Можно написать:

var i = new Number(17), a = new Array(1,2,3), c = new Object();

c.a = 1;c.b = 2;

А можно так:

var i = 17, a = [1,2,3], c= {a:1,b:2};

Нагляднее и короче. Поэтому в книгах рекомендуется второй вариант

! Для числа строго говоря разница есть.

Если в функции произошла ошибка будет сложнее определить откуда ее вызвали. У вас вызов замаскирован какими-то прослойками jquery и DOM

Лучше к такой практике не привыкать.

Проблема скорее всего не в самой таблице, а в контейнере в котором он лежит.

К тому же нужно уточнить какой именно ie - 6,7,8,9,10

дани мапов:
$('#ajaxSearchString').val(write).trigger('keyup');

Плохое это занятие - эмуляция нажатия клавиатуры.

Торикстартеру - вынесите функцию чтения/записи записи наружу и вызывайте ее напрямую.

"Портал по ручкам" - как звучит!

Xakez:
window.onerror

Он даст только номер строки и тип ошибки. требуемый дамп окружения из него не вытянешь

Всего: 2264