-> Hier kostenlos registrieren
Hi,
ich rufe via XMLhttpRequest Daten vom Webserver der SPS ab.
Beim Laden der Seite wird die Funktion aufgerufen und dann alle 1000ms erneut.
Das klappt auch soweit gut. Nur dass nach ~100 Anfragen (egal wie lange die Wartezeit ist) folgender Fehler auftritt:
Wie im unteren Log zu sehen ist, kommt die Zeichenfolge "CB" vor, was in den Logs zuvor nicht passiert.
Daher die Frage: Was kann zu diesem Fehler führen und wie behebe ich das Problem?
Ich habe auch schon in einem JS-Forum nachgefragt, was bisher aber keine Erkenntnisse geliefert hat.
Es liegt wohl am Server, war die Meinung.
ich rufe via XMLhttpRequest Daten vom Webserver der SPS ab.
Beim Laden der Seite wird die Funktion aufgerufen und dann alle 1000ms erneut.
Code:
function updatePlcElements() {
if (window.XMLHttpRequest) { //Google Chrome, Mozilla Firefox, Opera, Safari, IE 7
xmlhttp = new XMLHttpRequest();
} else { // Internet Explorer 6 und niedriger
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "html/Main_Update_Data.json", true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
console.log("Response: " + xmlhttp.responseText);
var data = JSON.parse(xmlhttp.responseText);
console.log(data);
debugger;
var iStunde = data.usi_Stunde;
var iMinute = data.usi_Minute;
var iSekunde = data.usi_Sekunde;
var iJahr = data.ui_Jahr;
var iMonat = data.usi_Monat;
var iTag = data.usi_Tag;
var sWochentag = data.usi_Wochentag;
var iTemperatur = data.si_Temperatur;
if (iStunde < 10) {
iStunde = "0" + iStunde;
}
if (iMinute < 10) {
iMinute = "0" + iMinute;
}
if (iSekunde < 10) {
iSekunde = "0" + iSekunde;
}
if (iMonat < 10) {
iMonat = "0" + iMonat;
}
if (iTag < 10) {
iTag = "0" + iTag;
}
switch(sWochentag) {
case '1':
sWochentag = "So"
break;
case '2':
sWochentag = "Mo"
break;
case '3':
sWochentag = "Di"
break;
case '4':
sWochentag = "Mi"
break;
case '5':
sWochentag = "Do"
break;
case '6':
sWochentag = "Fr"
break;
case '7':
sWochentag = "Sa"
break;
default:
}
document.getElementById("sZeit").innerHTML = iStunde + ":" + iMinute + ":" + iSekunde;
document.getElementById("sDatum").innerHTML = sWochentag + ", " + iTag + "." + iMonat + "." + iJahr;
document.getElementById("sTemperatur").innerHTML = iTemperatur + " °C";
setTimeout("refreshOutputArea()", 1000);
}
}
xmlhttp.send(null);
}
Das klappt auch soweit gut. Nur dass nach ~100 Anfragen (egal wie lange die Wartezeit ist) folgender Fehler auftritt:
Wie im unteren Log zu sehen ist, kommt die Zeichenfolge "CB" vor, was in den Logs zuvor nicht passiert.
Daher die Frage: Was kann zu diesem Fehler führen und wie behebe ich das Problem?
Ich habe auch schon in einem JS-Forum nachgefragt, was bisher aber keine Erkenntnisse geliefert hat.
Es liegt wohl am Server, war die Meinung.