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