0

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

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

4

2 回答 2

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();
        }
    }
});

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

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

于 2014-09-22T09:01:21.753 回答
-1

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

window.AutoCompleteCacheVariable = "";
于 2014-09-22T09:16:18.773 回答