gpt4 book ai didi

javascript - FusionChart 图表更新卡住图表

转载 作者:行者123 更新时间:2023-12-02 15:05:19 26 4
gpt4 key购买 nike

当数据更新以及将图表下载到客户端时,我的图表会卡住。下面是我的更新过程。

 FusionCharts.setCurrentRenderer('JavaScript');
FusionCharts.ready(function () {
var chart = new FusionCharts({
type: "dragcolumn2d",
renderAt: "chartWeightAnalysis",
id: "dragChartId",
width: '100%',
height: '500',
dataSource: "compute/" +<?php echo $_SESSION['MM_Username']; ?> + "renderChartDragColumn2d.xml",
dataFormat: "xmlurl",
events: {
'chartUpdated': function (evt, args) {
var diffWeight = args.startValue - args.endValue;
var resultXML = chart.getXMLData();
var result = JSON.stringify(chart.getData());// alert(chart.getData());
var newString = jQuery.parseJSON(result);
var weightBox = [];
var sum = 0;
var resultBox = [];
var allDataBox = [];
jQuery.each(newString, function (key, value) {
if (key !== 0 && key !== args.dataIndex) {
weightBox.push(value[1]);
sum += value[1];
}
});
for (var key in weightBox)
{
var ratio = (weightBox[key] * diffWeight / sum);
var newValue = ratio + weightBox[key];
resultBox.push(newValue);
allDataBox.push(weightBox[key], newValue);
}
var dataIndex = (args.dataIndex - 1) * 2;
allDataBox.splice(dataIndex, 0, args.startValue, args.endValue);
var matrix = listToMatrix(allDataBox, 2);
for (var key in matrix) {
resultXML = resultXML.replace('value="' + matrix[key][0] + '"', 'value="' + matrix[key][1] + '"');
}

UpdateChart(chart, resultXML);
}
}
}).render();
});
}

function UpdateChart(chart, resultXML) {
chart.setXMLData(resultXML);
}

a busy cat
(来源:soft-touchdigital.com)

一旦渲染,它就会变得无响应。可能是什么问题?将图表导出到客户端也会导致其同样卡住。

最佳答案

我找到了答案,我意识到错误通常来自 setChartData 函数,如果您使用不同的 setChartData 类型,它会变得无响应。例如,在我的 about 代码中,我使用 datasouce: 作为 XML 的 url(setXMLUrl 等效项),后来想依次使用 setXMLData 进行更新创建了一个错误。查看更新代码;我使用 ajax 将更新日期保存到同一文件(重要!!!)。

            function UpdateChart(resultXML) {
$.ajax({
type: "POST",
async: false,
url: "app_processor.php",
data: {action: "DragChartUpdate", getXMLData: resultXML},
success: function (msg) {
if (msg !== 0)
{
chart.setXMLUrl("compute/" +<?php echo $_SESSION['MM_Username']; ?> + "renderChartColumn2d.xml");
}
}
});

}

在我的 php 文件中:

function DragChartUpdate($getXMLData) {
if (isset($getXMLData)) {
file_put_contents("compute/" . $_SESSION['MM_Username'] . "renderChartColumn2d.xml", "<?xml version='1.0' encoding='utf-8'?>" . $getXMLData . "");
} else {
file_put_contents("compute/" . $_SESSION['MM_Username'] . "renderChartColumn2d.xml", "<?xml version='1.0' encoding='utf-8'?>");
}
}

关于javascript - FusionChart 图表更新卡住图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com