繁体   English   中英

通过缓存JSON响应来自动完成性能改进

[英]Autocomplete performance improvement with caching the JSON response

我正在使用此自动完成插件(FCBautocomplete)。 当我输入每个字符以返回结果时,都会向服务器发送一个请求。 由于我的数据太大,因此我担心可能发生的所有内存崩溃以及时间。 例如,如果我有一个名为“ John Smith”的联系人,那么将发送10个请求(将所有结果返回,然后根据输入的字符显示结果),这太昂贵了。 现在我的问题是缓存如何帮助我? 是否可以缓存JSON响应并从该缓存的响应中获取搜索结果的其余部分(即,当用户输入第二个字符而其余部分时,用户输入第一个字符,并且所有结果都将作为JSON响应生成。字符,而不是发送另一个请求,而是从缓存的JSON响应中搜索)。

请让我知道这个问题的好解决方案,因为我担心性能。 谢谢

您可以在ajax调用上尝试此代码。

    var cache = {};
$.ajax({
    url : ajax.url + '&suggestions=' + $.trim(queryText),
    type : 'POST',
    dataType : 'json',
    success: function(data){
        if(data.value.length > 0){
            addItemFeed(data, etext);
            cache = data;
            bindEvents();
        }else{
            feed.hide();
        }
    }
});

只需分配一个名为cache的对象,然后将数据放在cache上,然后尝试在页面上的任何位置访问此结果,以避免不必要的ajax调用。

希望这可以帮助...!!!

在javascript中定义全局变量可以解决您的查询。

window.AutoCompleteCacheVariable = "";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM