未捕获的SyntaxError:意外的令牌<

时间:2013-03-16 21:14:48

标签: d3.js

我遇到了一个多线图的奇怪问题。该图描绘了来自mysql数据库的数据,其中以5秒的间隔添加新行以模拟“实时”数据。然后,当从数据库中重新提取数据时,图表将以5秒的间隔更新。

“流式传输”停止并开始 - 每次更新数据时,其中有3个错误:

 Uncaught SyntaxError: Unexpected token < 
 d3_json 
 respond

数据应用于每个路径/行,如下所示:

 var parameter = svg.selectAll(".parameter")
    .data(data, function(d) { return d.key; })
    .enter().append("g")
    .attr("class", "parameter");

 parameter.append("path")
    .attr("class", "line")
    .attr("d", function(d) { return line(d.values); })
    .style("stroke", function(d) { return color(d.key); });

..然后更新数据以5秒的间隔读入并更新图表并相应地转换:

 d3.json("LiveData.php", function(error, data) 
 {      
    color.domain(d3.keys(data[0]).filter(function(key) { return key ==  "testSource_id"; }));
    data = data.map( function (d) { 
    d.testSource_id = +d.testSource_id; 
    d.dateTimeTaken = parseDate(d.dateTimeTaken);
    d.reading = +d.reading;
    d.parameterType = d.parameterType;
    d.parameter_id = +d.parameter_id;
    return d;
 });

data = d3.nest().key(function(d) { return d.testSource_id; }).entries(data);

x.domain([d3.min(data, function(d) { return d3.min(d.values, function (d) { return  d.dateTimeTaken; }); }),
d3.max(data, function(d) { return d3.max(d.values, function (d) { return d.dateTimeTaken; }); })]);
y.domain([d3.min(data, function(d) { return d3.min(d.values, function (d) { return d.reading; }); }),
d3.max(data, function(d) { return d3.max(d.values, function (d) { return d.reading; });})]);

var newparameters = svg.selectAll("g.parameter")
     .data(data);

newparameters
     .select( "path.line" )
     .transition() 
     .ease("linear")
     .duration(750) 
     .attr( "d", function(d) { return line(d.values); })

svg.select(".x.axis")
    .transition()
    .duration(750)
    .ease("linear")
    .call(xAxis);

svg.select(".y.axis")
    .transition()
    .duration(750)
    .ease("linear")
    .call(yAxis); 

我不知道这是由我转换路径/线路的方式引起的,还是与数据从数据库中引入的方式有关?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

通过访问传递给d3.json的URL返回的数据无效时,会出现此问题。在您的情况下,我猜LiveData.php正在返回HTML而不是JSON。它也可以是通用的404或其他一些错误页面。