typeaheadjs:如何在不使用缓存数据的情况下调用服务器

typeaheadjs: How to call server without using cached data

本文关键字:数据 缓存 情况下 服务器 调用 typeaheadjs      更新时间:2024-06-29

我使用typeaheadjs并使用remote获取数据。当我键入"A"时,它会从"A"开始获取数据,但下次当我删除并重新键入"A)时,它将显示缓存中的数据。但我需要每次都调用服务器,而不重复使用以前的响应。

这是我的代码

    $('#demo').typeahead({
    remote: {
        url: '/Home/GetSuggestions?query=%QUERY&url=%URL',
        replace: function (url, query) {
            return url.replace('%QUERY', query).replace('%URL', 'http://www.example.com');
        },
    },
    minLength: 1,
    limit: 10,
    cache: false,
    valueKey: 'Key'
}).bind('typeahead:selected', function (obj, datum) {
    $.ajax({
        url: '/Home/UpdateTags/',
        type: 'POST',
        data: JSON.stringify(some_data),
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            $('#demo').typeahead('setQuery', '');
        }
    });
});

我从这里得到了添加minLength的想法。我遗漏了什么吗?急切地等待帮助。

尝试在远程中移动缓存布尔值,这应该可以完成

remote: {
    url: '/Home/GetSuggestions?query=%QUERY&url=%URL',
    replace: function (url, query) {
        return url.replace('%QUERY', query).replace('%URL', 'http://www.example.com');
    },
    cache: false
},

如果不研究代码库,一个老技巧可能会在这里有所帮助:添加一个缓存阻塞器。在replace函数中添加一个_=randomdigits,这将使url每次都是唯一的,如果按url进行缓存,则会阻止缓存。