我的网站上有一个自动完成框。我正在使用Tokeninput。如果没有结果,我有用户点击链接添加它。问题是如果他们已经输入了已经缓存的确切查询,那么他们必须刷新页面以在下拉列表中查看结果。反正有没有阻止某些ajax调用的缓存?
答案 0 :(得分:3)
将jQuery.ajax
中的cache
选项设置为false
。这将阻止AJAX调用的缓存。它的工作原理是添加一个名为_
的新查询字符串参数,该参数设置为当前时间戳。
答案 1 :(得分:2)
在所请求的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(...);