13

我想我已经阅读了关于这个问题的所有 stackoverflow 和谷歌结果,它们似乎都指的是第一个 jquery 自动完成插件,而不是当前的 jquery ui 自动完成。

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

4

2 回答 2

23

jquery ui 自动完成不做任何缓存。缓存发生在浏览器级别。为防止它发生,请使用$.ajaxSetup.

$.ajaxSetup({ cache: false });

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

source: function(request, response) {
    $.ajax({
        url: "url.php",
        dataType: "json",
        cache: false,
        type: "get",
        data: { term: request.term }
    }).done(function(data) {
        response(data);
    });
}
于 2012-05-23T18:55:59.847 回答
1

您还可以将随机缓存破坏参数添加到 jQuery UI 使用的源 URL。如果那里已经有缓存破坏参数,jQuery UI 足够聪明,可以处理附加 term 参数。

于 2018-12-13T08:33:21.867 回答