我正在使用高图表在网页上显示大约10个图表。我遇到的问题是,图只加载了一部分时间,通常是50%左右。我不确定这是否相关,但是使用GDPC1.csv生成的第一个图表每次都会加载。
下面是我用来创建所有图形的代码:
var xmlhttp = new XMLHttpRequest();
var unratexml = new XMLHttpRequest();
var cpixml = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var d = csvToArray(xmlhttp.responseText);
var c = csvToArray(unratexml.responseText);
var x = csvToArray(cpixml.responseText);
createGDPChart(d);
createUNRATEChart(c);
createCPIChart(x);
}
}
xmlhttp.open("GET","GDPC1.csv",true);
xmlhttp.send();
unratexml.open("GET","UNRATE.csv",true);
unratexml.send();
cpixml.open("GET","test.csv",true);
cpixml.send();我唯一能想到的是,它与我的if语句有关,可能大多数情况下它都是假的,但我对javascript不太了解,不知道要更改什么。提前谢谢。
发布于 2014-10-16 20:58:05
每个XMLHttpRequest实例都是一个独立的请求。您必须为每个请求定义onreadystatechange。就像这样:
var xmlhttp = new XMLHttpRequest();
var unratexml = new XMLHttpRequest();
var cpixml = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var d = csvToArray(xmlhttp.responseText);
createGDPChart(d);
}
}
unratexml.onreadystatechange = function() {
if (unratexml.readyState==4 && unratexml.status==200) {
var c = csvToArray(unratexml.responseText);
createUNRATEChart(c);
}
}
cpixml.onreadystatechange = function() {
if (cpixml.readyState==4 && cpixml.status==200) {
var x = csvToArray(cpixml.responseText);
createCPIChart(x);
}
}
xmlhttp.open("GET","GDPC1.csv",true);
xmlhttp.send();
unratexml.open("GET","UNRATE.csv",true);
unratexml.send();
cpixml.open("GET","test.csv",true);
cpixml.send();https://stackoverflow.com/questions/26413564
复制相似问题