有没有办法阻止某些URL的缓存?

问题描述:

我在我的网站上有一个自动完成框。我正在使用Tokeninput。当没有结果时,我有用户点击链接添加它。问题是,如果他们已经输入了已经被缓存的确切查询,那么他们必须刷新页面才能看到下拉菜单中的结果。无论如何,以防止缓存某些Ajax调用?有没有办法阻止某些URL的缓存?

jQuery.ajax中的cache选项设置为false。这将阻止AJAX调用的缓存。它的工作方式是添加一个名为_的新查询字符串参数,该参数被设置为当前时间戳。

在请求的URL的末尾添加一个唯一的查询参数。通常这是通过随机数或时间戳来完成的。我更喜欢时间戳。

function makeURLUnique(url) { 
    var parm = "unique=" + Date.now(); // get timestamp in milliseconds 
    if (url.indexOf("?") == -1) { 
     parm = "?" + parm;    // no question mark, add one 
    } else if (!url.match(/\?$/)) { 
     parm = "&" + parm;    // no question mark at the end, must be other parms 
    } 
    return(url + parm); 
} 

如果您正在使用jQuery来获取URL,就可以自动使用jQuery的选项来打开缓存关闭,会做到底是什么如上所述,但是你做它:

$.ajax(yourURL, {cache: false}).then(...);