D3.json将缓存设置为false

时间:2014-06-20 10:30:11

标签: javascript jquery ajax json d3.js

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

$.ajaxSetup({ cache: false });

但是如何将其添加到d3.json调用,因为它使用自己的方法来调用ajax?我成功地在路径后添加了当前时间戳:

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

但这样做有点蹩脚......任何建议我怎么能做到这一点?或者更好的是,如果IE正在运行,如何设置它:)

2 个答案:

答案 0 :(得分:0)

我有同样的问题。 我通过将此代码添加到html文档的HEAD来解决它。

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

但是,这会阻止某个页面中每个对象的缓存,因此请小心使用图像,字体等。

答案 1 :(得分:0)

在使用不允许 url 参数的 API 时,我很幸运:

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