HighCharts图表的加载时间不到一半

时间:2014-10-16 20:43:29

标签: javascript csv highcharts

我使用highcharts在网页上显示大约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知之甚少知道要改变什么。提前谢谢。

1 个答案:

答案 0 :(得分:1)

每个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();