我面临着动态获取 dygraph 数据的问题。
我的代码看起来像
var SensorID=$('.sensor-selected').attr('title');
var Sensor_Name=$('.sensor-selected').attr('name');
var Sensor_Type=$('.sensor-selected').attr('typ');
var begin=$('#fromdate').val();
var end=$('#todate').val();
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
g = new Dygraph(
document.getElementById("graph"),
"file.csv", //change with xmlhttp.responseText
{
labels:["Date",Sensor_Type],
title: Sensor_Name,
ylabel: Sensor_Type,
legend: 'always',
labelsDivStyles: { 'textAlign': 'right' },
showRangeSelector: true,
xAxisLabelWidth: 80,
xValueFormatter: Dygraph.dateString_,
axes: {
x: {
ticker: function (a, b, pixels, opts, dygraph, vals) {
return Dygraph.getDateAxis(a, b, Dygraph.DECADAL, opts, dygraph);
},
axisLabelFormatter: function (val, granularity, opts, dygraph) {
return formatDate(toDateTime(val));
}
}},
xValueParser: function(x) { return 1000*parseInt(x); },
xTicker: Dygraph.dateTicker
}
);
}
}
xmlhttp.open("GET","fetcher.php?SensorID="+SensorID+"&begin="+begin+"&end="+end,true);
xmlhttp.send();
}
如果我用 xmlhttp.responseText 更改 csv 文件,代码会发疯。有时会说列的 nr 与标签的 no 不相等,或者它显示 yAxis 未定义或“2013-11-11”未像日期一样解析。
反而。如果我以静态方式放置 Ajax 响应,它会接受它。
我尝试了许多格式,例如 "2013-11-11 12:22:22,22\n" + .... 或不带引号或不带 \n 。没有任何效果。
我错过了什么?我再说一遍,对于引用的静态数据,一切正常。
也许您可以建议一个 jquery 解决方案。