Как отключить определенное нажатие клавиши в ZK во время выполнения EventListener того же нажатия клавиши

У меня есть комбинация клавиш ctrl+a, которая выполняет некоторую работу за 3-10 секунд. В течение этого периода времени, я хочу, если пользователь нажимает ту же клавишу [или любую дополнительную клавишу], запрос не будет принят. Какое право теперь происходит, когда запрос ставится в очередь и выполняется в порядке того, как все запросы поступили. Следующие - как я слушаю нажатия клавиш

win.setCtrlKeys("@b@g@i@k@l@n@o@p@r@s@u^x^a^c^z^1^2^#up^#down");
win.addEventListener("onCtrlKey", keylistener);

Keylistener занимает 2-10 секунд. Возможно ли это в ZKOSS? Я пытался отложить слушателей, но это полностью задерживает события до тех пор, пока не будет запущено событие без задержки.

1 ответ

Решение

Вопрос также задавался: http://forum.zkoss.org/question/101508/disable-multiple-pressing-on-a-keystroke-untill-previous-request-completes/

Я предлагаю удалить или отключить ваш обработчик событий для ключей в первую очередь.
После этого вы выводите событие, которое активирует эффективную бизнес-логику.

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

Другие вопросы по тегам