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

时间:2011-07-21 08:17:00

标签: php javascript caching jquery-ui-autocomplete

我有以下问题。我曾经有一个自动完成的输入,我刚刚从现场删除了它(因为它不再是necassery)。

该字段现在是:<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刷新缓存吗?删除所有缓存对网站并不是真正有益,所以我希望我可以删除这些字段的缓存。

3 个答案:

答案 0 :(得分:1)

似乎更新了更新版本的jquery ui解决了这个问题。谢谢大家!

答案 1 :(得分:0)

一个强大的解决方案是在查询网址中添加一个参数,其中包含时间戳。

示例(未实际测试):

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总是不同,因此浏览器不会进行缓存。

答案 2 :(得分:0)

假设您将js保存在文件'myjs.js'中,您可以修改相应的脚本标记到

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