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

标签 javascript ajax caching backbone.js

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

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

    1. 有没有办法在不更改 url 的情况下清除浏览器本地缓存。因此,/tasks 会被缓存到明年。我想使其无效并强制将来请求/tasks 以获取新数据和新的过期 header 。

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

另一个类似的问题: Forcing AJAX request to revalidate cache with server, without reloading completely

最佳答案

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

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

引用jquery docs : 缓存(默认值:true,对于数据类型“script”和“jsonp”为 false) 类型: bool 值 如果设置为 false,将强制浏览器不缓存请求的页面。注意:将缓存设置为 false 只能正确处理 HEAD 和 GET 请求。它的工作原理是将“_={timestamp}”附加到 GET 参数。其他类型的请求不需要该参数,但在 IE8 中,当对已通过 GET 请求的 URL 进行 POST 时除外。

关于javascript - 有选择地强制浏览器缓存清除 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887241/

相关文章:

javascript - Web Audio API 过滤器在 Safari 中不起作用

javascript - 通过单击获取按钮提交表单

jquery - 如何使用ajax调用json Controller 而不重定向到页面

javascript - jQuery ajax 适用于 Chrome,但不适用于 Firefox 或 Safari

html - 防止浏览器文件缓存

javascript - 谷歌可视化 map

javascript - ID : null issue in sailsJS when create an User

javascript - 在固定工作日运行的 Node-cron 作业

c# - 缓存数据列表 asp.net c#

python - 获取网页的当前版本