javascript - FLOT Charts 不绘制图表的问题
问题描述
var dataprofit = [];
var databalance = [];
var datastops = [];
var aline = [];
var profit = [];
var balance = [];
var stop = [];
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var jresp=JSON.parse(this.responseText);
for (i=0; i<jresp.length; i++) {
aline = jresp[i]
profit = [aline['ticket'], aline['profit']];
balance = [aline['ticket'], aline['balance']];
stop = [aline['ticket'], aline['stop']];
dataprofit.push(profit);
databalance.push(balance);
datastops.push(stop);
}
// EquityCounter.update(jresp["equity"]);
}
};
xhttp.open("GET", "https://dashboard.luxtradingfirm.com/getvalues/1234", true);
xhttp.send(null);
var optionsSeries = {
yaxis: { min: 14000, max: 16000 },
xaxis: { show: false },
grid: {
tickColor: '#dddddd',
borderWidth: 0,
},
legend: {position: 'sw'},
colors: ['#008000','rgba(65,139,202,0.5)', '#FF0000']
};
var dataset = [
{
label: "Succeed",
data: dataprofit,
series: { shadowSize: 0 },
lines: { fill: false },
} , {
label: "Balance",
data: databalance,
series: { shadowSize: 1 },
lines: { fill: true, fillColor: { colors: [{ opacity: 1 }, { opacity: 0.1 }] } },
}, {
label: "Fail",
data: datastops,
}
];
$.plot($('#realtimechart'), dataset, optionsSeries);
此代码从链接中读取一个 json 对象,然后将其放入 3 个不同的数组中,使用 Flot 图表的选项将 3 个数组重新组合为 1。但是,Flotchart 不会绘制。如果我将数组更改为手动编码数组(在数据集数组中),它会完美运行。怎么了?
解决方案
数组和绘图函数的组装必须在 xhttp.onreadystatechange = function() {} 内
否则它将组装空数组,因为 API 调用尚未完成。
推荐阅读
- swift - 无重复的随机数集
- android - 在 Android 6.0.1 而非 Android 10 中运行的服务
- wordpress - 在欧盟开发健康相关软件之前,我需要了解什么?
- templates - 如何在 vim-latex 套件模板中包含自定义包?
- c++ - #define 如何知道何时停止查找?
- excel - 如何在 Excel 股票中获得 WTI 原油价格?
- javascript - 使用预定义的字符串 keyholder 从字符串中提取值
- sql - 在 If 语句中使用 Like "*" 运算符
- reactjs - 如何在 css-modules 中实现 react-dates css?
- javascript - 如何用正则表达式计算或替换javascript中{}或[]之间的所有匹配词?