javascript - JQuery 自动完成缓存与 ajax 不填充

标签 javascript jquery ajax caching

我正在尝试通过 ajax 调用添加缓存到下面的代码中。该代码在没有缓存的情况下工作正常,在我第一次添加缓存后自动完成工作,第二次它只显示空白。我在这里做错了什么?

我的代码

$(document).ready(function () {
    $("#MainContent_txtSurname").autocomplete({

        source: function (request, response) {
            var term = request.term;
            if (term in cache) {
                response(cache[term]);
                return;
            }
            $.ajax({
                crossDomain: true,
                type: 'POST',
                url: "http://localhost:1448/GetSurnames",

                dataType: 'json',
                data: { "Name": request.term, "CID": CID },
                processdata: true,
                success: function (result) {
                    var Surnames = JSON.parse(result.data);

                    cache[term] = Surnames;
                    response($.map(Surnames, function (item) {

                        return {
                            label: item.homename,
                            value: item.homename
                        }
                    }));
                },
                error: function (a, b, c) {
                    debugger;
                }
            });

        },
        minLength: 2
    });
});

返回的数据为:

{"data":"[{\"id\":3,\"homename\":\"D\\u0027Costa\"}]"}

最佳答案

尝试为自动完成插件缓存正确格式的数据。关于 Ajax 的成功:

success: function (result) {
    var Surnames = JSON.parse(result.data);

    cache[term] = $.map(Surnames, function (item) {

        return {
            label: item.homename,
            value: item.homename
        }
    });
    response(cache[term]);
}

关于javascript - JQuery 自动完成缓存与 ajax 不填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19862417/

相关文章:

javascript - 页面加载进度

javascript - Generator.next() 如何处理它的参数?

javascript - 检查日期是否已超过 2 周

jquery - History.back() 在 ajax 成功函数后不起作用

javascript - Jquery 没有完成元素的追加 - 最后两个没有追加

javascript - 获取消息函数的 setInterval 问题

javascript - 为什么没有定义 $store?

javascript - 如果 X = 宽度和 X = 高度,JS 图像检测不会为图像添加类

javascript - 如何拦截来自网页的每个 AJAX 请求

javascript - 在 Ajax 中将字符串作为参数传递