清除jquery ui自动完成的缓存

时间:2012-05-23 18:51:39

标签: jquery jquery-ui jquery-ui-autocomplete

我想我已经阅读了有关此问题的每个stackoverflow和google结果,它们似乎都引用了第一个jquery自动完成插件而不是当前的jquery ui自动完成。

强制自动完成结果从数据源而不是缓存列表更新的方法是什么?

2 个答案:

答案 0 :(得分:22)

jquery ui autocomplete不进行任何缓存。缓存发生在浏览器级别。要防止它发生,请使用$.ajaxSetup

$.ajaxSetup({ cache: false });

如果您不想全局禁用缓存,您也可以为源选项提供一个函数,该选项使用cache: false为您执行ajax请求。

source: function(request, response) {
    $.ajax({
        url: "url.php",
        dataType: "json",
        cache: false,
        type: "get",
        data: { term: request.term }
    }).done(function(data) {
        response(data);
    });
}

答案 1 :(得分:0)

您还可以向jQuery UI使用的源URL中添加随机cache busting parameter。 jQuery UI足够聪明,可以处理添加term参数(如果已经存在缓存清除参数)的情况。