богатая очередь: автозаполнение событий изменения перед отправкой их на сервер - PullRequest
0 голосов
/ 02 февраля 2012

Я использую компонент автозаполнения из richfaces. (режим имеет в качестве ajax).
У меня есть следующее требование: после того, как пользователь что-то введет в него, запрос не должен идти непосредственно к серверу, вместо этого он должен ждать период, скажем, 500 мс, прежде чем будет вызван метод автозаполнения. Это необходимо для предотвращения ajax-флудинга (например, если пользователь вводит 3 быстрых символа, он будет делать только один запрос к серверу вместо 3).
По сути, я хочу, чтобы метод автозаполнения вызывался только в том случае, если прошло 500 мс после последнего нажатия клавиши. Конечно, это можно решить с помощью a4j: queue, проблема в том, что список предложений всегда появляется, а метод автозаполнения всегда вызывается независимо от того, что я использую для его предотвращения (прикрепление a4j: очередь или установка частоты, eventsQueue & requestDelay атрибуты).
Любые идеи очень приветствуются.

1 Ответ

0 голосов
/ 16 февраля 2012

Частотный тег, который вы упомянули, является способом сделать это. Он определяется как: Задержка (в секундах) перед активацией всплывающего предложения. Значение по умолчанию составляет 400 мс.

Если вы устанавливаете частоту 500 мс, что все еще слишком мало: пользователь может набрать более 1 символа в этот период времени, что, вероятно, вызывает ваш поток ajax.

Я предлагаю вам установить частоту 1000 или еще лучше 2000 .

...