从缓存结果中删除自动完成


remove autocomplete from cache results

我有以下问题。我曾经有一个自动完成的输入,我最近从字段中删除了它(因为它不再需要)。

字段现在是:<input type="text" class="required text motivationname valid" maxlength="30" onblur="isDoubleMotivation(this.value);" value="" id="title" name="title">没什么特别的,对吗?

我有另一个自动完成字段,其中填充了有关城市的信息。

var elements = $('input.auto_plaatsnaam');
    elements.each(function() {
        $(this).autocomplete( {
            dataType: "json",
            source: "/common/ajax/citysearch.php",
            minLength: 1,
            cache: false,
            delay: 100
        });
    });

问题如下:一些用户在第一个(标题)输入字段上得到自动完成。我认为这是一个缓存问题,因为删除缓存解决了问题。我可以强制与php或js冲洗缓存前字段加载?删除所有的缓存并不是真正有益的网站,所以我希望我只是可以删除这些字段的缓存。

似乎最新版本的jquery ui已经解决了这个问题。感谢所有!

一个可靠的解决方案是在查询url中添加一个参数,包含时间戳。

示例(未实际测试):

var elements = $('input.auto_plaatsnaam');
elements.each(function() {
    $(this).autocomplete( {
        dataType: "json",
        source: function() { return "/common/ajax/citysearch.php?t="+new Date().getTime()},
        minLength: 1,
        cache: false,
        delay: 100
    });
});

这样,AJAX调用的url总是不同的,所以浏览器不会缓存。

假设你把你的js保存在文件'myjs.js'中,你可以修改相应的脚本标签到这个

<script src="/path/to/myjs.js?version=0.01"></script>