У меня проблемы с использованием flot в IE8.Я хорошо вытягиваю файл excanvas.js, но, похоже, у IE сейчас проблема с моим объектом.Вот код, который я использую, чтобы попытаться построить гистограмму
var uptime = [];
var TotalUptime = 0;
for(var i = 1; i < data.Service.length; i++){
var UptimeValues = parseFloat(data.Service[i].TIME_UP) + parseFloat(data.Service[i].TIME_MAINT) + parseFloat(data.Service[i].TIME_DEGRADED);
uptime.push([-i, UptimeValues / 14.4]);
TotalUptime = TotalUptime + UptimeValues;
}
var ChartData = [
{
data: uptime,
color: '#bfd730',
bars: {show: true, align:'center', barWidth:0.1, fillColor:'#bfd730'}
},
];
var options = {
xaxis: {ticks:[[-1, 'Now']], color: '#ffffff', min: -30, max: -1},
yaxis: {color: '#ffffff', min: 0 ,max: 100}
};
$.plot($("#ServiceInfoChart"), ChartData, options);
Ответ, который я получаю: «данные», является нулевым или не объектом.
Я подтвердил, что этонет никаких проблем с самим flot, потому что я поместил статические значения туда, и диаграмма хорошо отображается.У меня нет проблем с другими браузерами, использующими приведенный выше код.
Есть ли что-то, что мне не хватает?
РЕДАКТИРОВАТЬ: Полная функция
Я делаю запрос, которыйотправит ответ в формате JSON, например
{"Service": [{"Name":"SomeService","Status":"UP","Description":"Some Description"},{"Date":"2012-04-02","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-04-01","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-04-00","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-30","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-29","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-28","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-27","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-26","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-25","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-24","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-23","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-22","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-21","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-20","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-19","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-18","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-17","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-16","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-15","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"},{"Date":"2012-03-14","TIME_UP":"1440.00","TIME_DOWN":"0.00","TIME_MAINT":"0.00","TIME_DEGRADED":"0.00"}]}
Это полная функция, которая обрабатывает его ниже.
function GoToServiceInfo(){
$.ajax({
type: 'GET',
url: 'get.php?Request=ServiceInfoFull',
timeout: 10000,
beforeSend: function (jqXHR, settings){
jqXHR.setRequestHeader("SessionID", SessionID);
},
success: function(data){
CheckForContactInfo();
GetSubscriptions();
$('#' + $('#content').find(':visible').attr('id')).slideToggle('fast', function(){
$('#ServiceInfo').slideToggle('fast');
});
$('#ServiceInfoTitle').html(data.Service[0].Name);
$('#ServiceInfoDescription').html('<h1>Description</h1>' + data.Service[0].Description);
var uptime = [];
var TotalUptime = 0;
for(var i = 1; i < data.Service.length; i++){
var UptimeValues = parseFloat(data.Service[i].TIME_UP) + parseFloat(data.Service[i].TIME_MAINT) + parseFloat(data.Service[i].TIME_DEGRADED);
uptime.push([-i, UptimeValues / 14.4]);
TotalUptime = TotalUptime + UptimeValues;
}
var ChartData = [
{
data: uptime,
color: '#bfd730',
bars: {show: true, align:'center', barWidth:0.1, fillColor:'#bfd730'}
},
];
var options = {
xaxis: {ticks:[[-1, 'Now']], color: '#ffffff', min: -30, max: -1},
yaxis: {color: '#ffffff', min: 0 ,max: 100}
};
$.plot($("#ServiceInfoChart"), ChartData, options);
var TotalUptimePercent = (TotalUptime / (data.Service.length - 1)) / 14.4;
$('#UptimePercent').html('Uptime Past 30 Days <font color="#bfd730"> ' + TotalUptimePercent.toFixed(3) + '%</font>');
},
error: function(x, t, m) {
if(t==="timeout") {
noty({text: 'Error!', type: 'error', timeout: 2500});
} else {
noty({text: m, type: 'error', timeout: 2500});
}
}
});
}