D3.Json设置缓存为false

D3.json setup cache to false

本文关键字:false 缓存 设置 Json D3      更新时间:2023-09-26

我注意到用json调用(d3.json)重新绘制D3元素不想在IE9+上更新。其原因是json调用被缓存,因此浏览器不会注册新数据已被传递。普通jQuery ajax调用的解决方法是将其属性设置为cache: false,全局适用于所有ajax调用:

$.ajaxSetup({ cache: false });

但是我怎么能把它添加到d3.json调用,因为它使用自己的方法调用ajax?我成功地在path后面添加了当前时间戳:

var noCache = new Date().getTime();
d3.json(data + "?_=" + noCache)

但这是一个有点蹩脚的方式去做…有什么建议吗?或者更好的是,如何设置只有当IE正在运行:)

我也有同样的问题。我通过将这段代码添加到html文档的HEAD中来解决这个问题。

<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 
<meta http-equiv="pragma" content="no-cache">

然而,这将阻止缓存特定页面中的每个对象,所以要小心图像,字体和其他。

在使用不允许url参数的API时,我很幸运地做到了这一点:

d3.json('your url', {
      cache: "no-store"
}).then(...