Способы ограничения запросов ajax

Я использую следующий код (написанный другим пользователем) для ограничения запросов ajax в функции livesearch:

JSFiddle, если вы предпочитаете демонстрацию: http: //jsfiddle.net/4xLVp/

Однако это кажется ошибочным. Очистка значений с помощью Ctrl + shift + стрелка назад и повторный ввод вызывает шквал запросов. Пустые значения также вызывают запрос. Это не кажется правильным, особенно по сравнению с автозаполнением jQuery UI , где задержки запросов кажутся более измеренными.

    $('##tag-search').keyup(function() {
        var elem = $(this);
        if (elem.val().length >= 2) {
            elem.data('search',search).clearQueue().stop().delay(1000).queue(function() {
                $.ajax({ // ajax stuff
                    'success': function(data){ /*show result*/ }
                });
                if (elem.data('search') !=  string) return;
            });                                             
        } else if (string.length <= 1) { /*show original content*/ }
    });

Есть ли лучший способ справиться с этим?

7
задан Community 23 May 2017 в 12:01
поделиться