Javascript 重新加载使用ajax填充的数据表的缓存

Javascript 重新加载使用ajax填充的数据表的缓存,javascript,jquery,ajax,caching,datatables,Javascript,Jquery,Ajax,Caching,Datatables,我正在使用DataTables在我的网站中显示数据。为了利用它,我使用ajax来填充表。下面是我的代码: $( document ).ready(function() { var review = $('#review').DataTable({ dom: 'B<"toolbar">frtip', "ajax": { "url": 'include/json_review.php', "data

我正在使用DataTables在我的网站中显示数据。为了利用它,我使用ajax来填充表。下面是我的代码:

$( document ).ready(function() {

    var review = $('#review').DataTable({
        dom: 'B<"toolbar">frtip',
        "ajax": {
            "url": 'include/json_review.php',
            "data": {
               "filter" : "someFilter"
            },
            "type": 'GET',
            "dataSrc": "",
             "cache": true // to load page fast 
        }
   });
});
它在运行,但当我在谷歌浏览器中查看开发者工具的网络选项卡时,它显示数据仍然是从磁盘缓存加载的。我认为问题在于,当我调用location.reload()函数时,它只加载html,但ajax数据保持不变

我正在考虑的一个可能的解决方案是再次调用ajax并将当前时间戳作为参数传递,因为
cache:false
应该就是这样做的。可能吗?如果是,怎么做

我别无选择。帮忙

更新:我尝试了另一种方法,使用table.ajax.url('include/json_review.php?\='+time.).load(),其中time是$.now()。它确实向表中添加了数据,但仍然没有替换缓存。所以我基本上创建了另一个缓存

我的解决方法:我通过覆盖
.htaccess
中的标题解决了问题。这和我想做的有点不同,但我不能挑剔

<Files 'json_review.php'>
      Header set Cache-Control "max-age=300"
</Files>

标题集缓存控制“最大年龄=300”
五分钟后,当我点击“刷新”或从一个页面切换到另一个页面时,浏览器会检查最大年龄。如果该最长时间过期,则会删除ajax缓存,并再次运行ajax以有效地替换它


如果有人遇到同样的问题,我会把这个贴在这里。我还想知道是否有更好的解决方案。

如果您只想控制缓存,可以添加一个类似“url”的参数:

include/json\u review.php?“+Date().getTime(),


通常,这将在每次日期不相同时重新加载缓存。我想我的问题不太清楚。我想要实现的是让表使用缓存数据显示,直到用户提示它进行更新。您的答案将导致每次加载页面时更新表数据,不是吗?Tl:dr我想要一个按钮来更新缓存。您是否尝试过
$.ajaxSetup({cache:false})
然后
ajax.url('same-url-with-some-random-value').load()
。。?这应该行得通…难道这不会禁用缓存吗???这不是您想要的,在需要时禁用缓存吗?浏览器和服务器也会缓存,因此必须更改URL:或使用destroy:true和cache:false重新初始化数据表。
<Files 'json_review.php'>
      Header set Cache-Control "max-age=300"
</Files>