Отключить автоповтор для onkeydown\onkeypress
Доброго времени суток, ява-гуру.
Мои познания в яваскрипте еще ничтожно малы, прошу Вас о помощи. Есть следующая функция по нажатию клавиши: if(e.keyCode==119) //"W" - press { var last_id = new XMLHttpRequest(); // Новый запрос last_id.open('post', 'php/4.php', true) // post, куда, true last_id.setRequestHeader('Contewt-Type', 'application/x-www-form-urlencoded'); last_id.send("m") } По нажатию на клавишу "W" функция методом пост записывает данные в БД, все работает, все хорошо .... но столкнулся с проблемой авто-повторения во время зажатия клавиши, так как MySQL висит на перепиленном роутере с юниксом на борту, железяка загинается от непрерывного обращения к базе :( ... для нормальной работы будет достаточно одной записи по событию нажатия и одно по отжатию ... Прошу помощи в игнорировании или отключении автоповтора функции во время зажатия клавиши, если это возможно. Заранее очень признателен. |
keydown, keypress зацикливаются если удерживать кнопку, а вот keyup происходит один раз - при отпускании кнопки. Так что либо использовать keyup для выполнения запроса (если это подойдет), либо завести флаг, проверять его по keydown, если не установлен, устанавливать и выполнять действие, иначе игнорить. а по keyup сбрасывать флаг.
|
danik.js
Спасибо, с флагами все получилось ! |
Часовой пояс GMT +3, время: 17:37. |