Автозаполнение в jQuery UI работает медленно.Как сообщить пользователю, что работа ведется под капотом? - PullRequest
0 голосов
/ 01 июня 2019

jQuery UI 1.12.1

В html у меня есть тег ввода.Пользователь вводит некоторый код.А затем я использую jQuery UI для организации автозаполнения.

Мой код:

function select_autocomplete_variant() {
    $("#user_input").autocomplete({
        minLength: 1,
        source: get_array_for_autocomplete(),
    });
}

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

Можно ли показать вращающийся курсор пользователю, пока работает автозаполнение.

1 Ответ

0 голосов
/ 06 июня 2019

Если вы ожидаете, что результаты «займут много времени», вы можете подвести значение minLength к более высокому значению.

Вы также можете использовать функцию для Source, позволяющую вам выполнить свой собственный вызов AJAX.,Это дает вам возможность запускать и останавливать GIF или представлять уведомление.Пример:

function select_autocomplete_variant() {
    $("#user_input").autocomplete({
        minLength: 1,
        source: function(req, resp){
          var $el = $(".ui-autocomplete-input", this);
          $.ajax({
            url: 'mySearch.php',
            data: { term: req.term },
            beforeSend: function(){
              $el.addClass("ui-autocomplete-loading");
            },
            success: function(data){
              $el.removeClass("ui-autocomplete-loading");
              resp(data)
            }
          });
        }
    });
}

Подробнее см. В разделе Темы для http://api.jqueryui.com/autocomplete/

Надежда, которая помогает.

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