Keyup влияет на ввод текста в браузере, когда я отправляю запрос. Можно ли это остановить аффект? - PullRequest
2 голосов
/ 09 апреля 2011

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

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

Можно ли это остановить, чтобы повлиять на такого рода проблемы.

Ответы [ 2 ]

2 голосов
/ 09 апреля 2011

, чтобы защититься от этого, я обычно делаю что-то вроде:

var to = null;
$('input').keyup(function()
{
    if(to!=null)
    {
        clearTimeout(to);
        to = null;
    }
    to = setTimeout(function()
                    {
                       // do my stuff here
                       to = null;
                    },200); 
});

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

0 голосов
/ 09 апреля 2011

Как только вы введете что-то в текстовое поле, ваш AJAX-запрос будет отключен.Заблокируйте или отключите текстовое поле, чтобы предотвратить ввод текста.Как только запрос AJAX возвращается с сервера, ваша функция обратного вызова должна снова включить текстовое поле.Это гарантирует, что типизация никогда не опережает ответы AJAX.

Для обработки нюансов вы бы отображали анимацию поверх заблокированного текстового поля.

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