У меня есть график, который опрашивает данные через ajax
из XML-документа. Я использую режим: time for x axis
. Он работает нормально, за исключением периодически, некоторые значения из xml Document
удаляются. Вот код, который выбирает xml
через ajax
.
function graphUpdate() {
$.ajax( {
url: "EnergyDM.xml",
type:"GET",
dataType: "XML",
success: onxmlReceived,
error: function(xhr, textStatus, errorThrown)
{
alert(textStatus + ' ' + errorThrown);
}
});
// setTimeout(graphUpdate,10000);
}
function onxmlReceived(data) {
var xmlData = null;
//for Non IE Browsers
if(window.DOMParser) {
//xmlData = data;
parser = new DOMParser();
xmlData = parser.parseFromString(data, "text/xml");
}
// For IE
else {
xmlData = new ActiveXObject("Microsoft.XMLDOM");
xmlData.async = false;
xmlData.loadXML(data);
}
$(xmlData).find('energyDM').each(function(){
Rec_Count = parseInt($(this).find('edNum').text());
d1=[];
for(var i = 0; i < Rec_Count; i++) {
if(i < 10) {
d1.push([(parseInt($(this).find('et000'+i).text(),10))*1000,
parseFloat($(this).find('ed000'+i).text())]);
} else if(i < 100) {
d1.push([(parseInt($(this).find('et00'+i).text(),10))*1000,
parseFloat($(this).find('ed00'+i).text())]);
} else {
d1.push([(parseInt($(this).find('et0'+i).text(),10))*1000,
parseFloat($(this).find('ed0'+i).text())]);
}
}
plotWithOptions();
});
}
XML-файл выглядит так:
<energyDM>
<edNum>305</edNum>
<TMF>UTC </TMF>
<pm339> 1.271</pm339><!-- pm339 max energy demand value -->
<pm340>1325033716</pm340><!-- pm340 max energy demand occured time -->
<ed0000> 0.282</ed0000>
<et0000>1325545093</et0000>
<ed0001> 0.283</ed0001>
<et0001>1325544792</et0001>
<ed0002> 0.284</ed0002>
<et0002>1325544492</et0002>
...
<ed0305> 0.284</ed0305>
<et0305>1325544492</et0305>
</energyDM>
Когда возвращаемый XML пропускает узлы, если я использую Chrome для просмотра значений, он показывает что-то вроде:
<ed0023> 0.283</ed0023>
<et0023>1325538176</et0023>
<ed0024> 0.281</ed0024>
<et0024>1325537875</et0024>
<ed0035> 0.281</ed0035>
<et0035>1325534564</et0035>
<ed0036> 0.280</ed0036>
<et0036>1325534263</et0036>
И это не всегда происходит. Если я продолжу обновлять страницу, она может отбросить несколько узлов, затем всплыть все это и т. Д. И не всегда удаляются одни и те же узлы.
Буду признателен за любые подсказки.