2013-03-16 7 views
2

У меня возникла странная проблема с многострочным графиком. График отображает данные из базы данных mysql, где новые строки добавляются через 5 секунд для имитации «живых» данных. Затем график обновляется с интервалом в 5 секунд, когда данные повторно извлекаются из базы данных.Uncaught SyntaxError: Неожиданный токен <

«потоковое» останавливается и начинается - с 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); 

Я не знаю, вызвано ли это тем, как я перехожу к пути/строке или это может быть связано с тем, как данные извлекаются из базы данных? Может ли кто-нибудь помочь?

+0

строка 3: 'data = data.map (function (d) {' закрыть эту функцию где-то;) – Ven

+0

Забытые включают все закрывающие скобки в коде выше, но все они есть в исходном коде. – Newbie

ответ

1

Эта проблема возникает, когда данные, возвращаемые путем обращения к URL-адресу, переданному в d3.json, являются недопустимыми JSON. В вашем случае, я думаю, LiveData.php возвращает HTML вместо JSON. Это также может быть общая 404 или другая страница ошибок.

Смежные вопросы