jQuery自动完成 - 缓存不再是一个选项吗?

时间:2012-01-10 23:04:31

标签: jquery jquery-ui autocomplete jquery-autocomplete jquery-ui-autocomplete

使用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 个答案:

答案 0 :(得分:9)

jQueryUI autocomplete的缓存绝不是一种选择。

jQuery自动填充的cacheLength选项(JörnZaefferer现已弃用的自动完成插件)。

来自自动填充的migration guide - &gt; jQueryUI自动完成,Jörn提到:

  

cacheLength:不再有内置缓存支持,但实现自己很容易,如Remote with caching demo所示。

如果您经常使用缓存实现,可以将该功能包装在另一个封装它的插件中。