我正在做以下事情:
highchart js的代码如下:
//高图表json饼图
$(document).ready(function() {
console.log("hi from high chart from json PIE")
$.getJSON("{% static 'money/data/highchartpie.json' %}", function(json) {
console.log("haha i have read the json")
$('#containerHighChartJSONPie').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: 1,//null,
plotShadow: false
},
title: {
text: 'Expenses per Types of Expenditures'
},
tooltip: {
pointFormat: '{point.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %',
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
}
}
}
},
series: [{
type: 'pie',
name: 'Type of Expenditure',
data: json
}]
});
});
});
json中的数据是: [[&#34;杂货&#34;,50.0],[&#34;杂项&#34;,30.0]]
问题 下面根据需要生成好的饼图,如果更改任何数据,图表也会更改,但有时图表剂量会显示其中的更新数据。我试过了:
所以它似乎是一个缓存问题,但有没有办法在高清代码中解决这个问题?
答案 0 :(得分:3)
您可以通过调用以下内容将缓存设置为false
,它将针对您的所有请求禁用:
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
请参阅此问题:How to set cache false for getJSON in JQuery?
要获得更精确的缓存处理,请将getJSON
更改为ajax
jquery调用,将datatype
设置为JSON
:事实上,$.getJSON
是以下快捷方式:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
因此,如果您想在请求中设置cache: false
,则应该以这种方式添加:
$.ajax({
cache: false,
dataType: "json",
url: url,
data: data,
success: success
});