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

时间:2013-04-12 07:55:34

标签: jquery json autocomplete fcbkcomplete

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

由于我对性能感到担心,请让我知道这个问题的一个很好的解决方案。谢谢

2 个答案:

答案 0 :(得分:0)

您在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的对象,并将数据放在缓存中,并尝试在页面的任何位置访问此结果,以避免不必要的ajax调用。

希望这有助于...... !!!

答案 1 :(得分:-1)

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

window.AutoCompleteCacheVariable = "";