代码之家  ›  专栏  ›  技术社区  ›  Michael

jqueryui中的Autocomplete工作缓慢。如何告知用户正在引擎盖下进行工作?

  •  0
  • Michael  · 技术社区  · 6 年前

    jQuery用户界面1.12.1

    在html中,我有一个输入标记。用户输入一些代码。然后我使用jqueryui来组织自动完成。

    我的代码:

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

    问题是自动完成的数组相当大。每次用户输入另一个符号时,此代码都会挂起几秒钟。这本身不是问题:用户将等待。但问题是,用户在等待时没有意识到程序正在为他工作。

    是否可以在自动完成工作时向用户显示旋转光标。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Twisty    6 年前

    如果你预计结果会“花很长时间”,你可以考虑调整价格 minLength 更高的值。

    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/

    希望有帮助。