jQuery Autocomplete - кеширование больше не вариант? - PullRequest
7 голосов
/ 11 января 2012

При использовании jQuery Autocomplete, согласно документам, для кеширования необходимо сделать следующее:

<script>
$(function() {
    var cache = {},
        lastXhr;
    $( "#birds" ).autocomplete({
        minLength: 2,
        source: function( request, response ) {
            var term = request.term;
            if ( term in cache ) {
                response( cache[ term ] );
                return;
            }

            lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) {
                cache[ term ] = data;
                if ( xhr === lastXhr ) {
                    response( data );
                }
            });
        }
    });
});
</script>

Разве раньше не было опции для кеширования?Спасибо

1 Ответ

9 голосов
/ 11 января 2012

Кэширование для jQueryUI автозаполнение никогда не было возможным.

Там было a cacheLength для jQuery autocomplete (плагин Jörn Zaefferer, который больше не поддерживается автозаполнением).

В руководстве по миграции из автозаполнения -> автозаполнение jQueryUI Йорн упоминает об этом:

cacheLength: Больше нет встроенной поддержки кэширования, но действительно легко реализовать свою собственную, как показывает Remote с демонстрацией кэширования .

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

...