HTML SELECT - возможно иметь отложенный обмен? - PullRequest
0 голосов
/ 18 января 2012

У меня есть окно SELECT, которое обновляет DIV с помощью AJAX при изменении значения SELECT.

Эта AJAX-процедура довольно медленная, поэтому я хочу вызывать ее только тогда, когда она абсолютно необходима.

Для этого я использую событие onchange.

В Firefox и Chrome это работает нормально, когда вы используете клавиши для прокрутки различных опций. Событие onchange вызывается только при выходе из SELECT.

Но в Internet Explorer событие onchange срабатывает при каждом нажатии клавиш со стрелками. Я понимаю, что большинство людей предпочитают это, но из-за медленного AJAX-вызова это делает мой SELECT действительно медленным.

Мне нужно какое-то отложенное обновление ... Onchange следует запускать только через несколько секунд, не беспокоясь об обновлении, когда пользователь все еще использует клавиши со стрелками для выбора опции.

Есть идеи, как этого добиться?

1 Ответ

1 голос
/ 18 января 2012

Вы можете использовать setTimeout, чтобы установить задержку (и clearTimeout, чтобы отменить ее, если пользователь изменится до истечения времени ожидания).

Или, если вы используете jquery, попробуйте просмотреть очереди и, в частности, функцию задержки.

См. Полный пример здесь: Задержка ajax-запроса на x секунд и обновление только последнего нажатого запроса

Использование jquery и другой подход к тому, что я предложил - я думаю, что очереди могут сделать его более лаконичным, но не в состоянии проверить это прямо сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...