我想我已经阅读了有关此问题的每个stackoverflow和google结果,它们似乎都引用了第一个jquery自动完成插件而不是当前的jquery ui自动完成。
强制自动完成结果从数据源而不是缓存列表更新的方法是什么?
答案 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参数(如果已经存在缓存清除参数)的情况。