繁体   English   中英

有选择地强制浏览器缓存清除Ajax请求

[英]Selectively Force Browser Cache to Clear Ajax Request

对于浏览器缓存,有很多答案,但是大多数答案是打开或关闭缓存,或者为某些静态资产(例如js或图片)请求使用不同的url。

  • 我正在通过ajax请求加载json数据
  • 这是动态内容,例如任务列表
  • 我只想在用户执行特定操作后进行更新。 在此之前,它可以永远被缓存。
  • 当用户执行该操作时,我想使缓存无效并从服务器获取新版本。

    1. 有没有一种方法可以清除浏览器的本地缓存,而无需更改URL。 因此,/ tasks缓存到明年。 我想对此无效,并强制将来对/ tasks的请求以获取新数据和新的expires标头。

    2. 我最好不要允许浏览器缓存并在服务器上缓存请求/数据吗?

另一个类似的问题: 强制AJAX请求重新验证服务器的缓存,而无需完全重新加载

cache: false foreach请求cache: false jquery将添加时间戳作为get参数,因此该请求是唯一的,不会被缓存

$.ajax({
    url:"example.php"
    cache:false
});

引用jquery docs :缓存(默认值:true,dataType'script'和'jsonp'的false)类型:Boolean如果设置为false,将强制浏览器不缓存请求的页面。 注意:将缓存设置为false只能与HEAD和GET请求一起正常使用。 它通过在GET参数后附加“ _ = {timestamp}”来工作。 其他类型的请求不需要该参数,但在IE8中,当GET对已经由GET请求的URL进行POST时,则不需要该参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM