Hallo,
ich bin recht neu was das Programmieren mit JS angeht. Ich habe einen Webserver laufen welcher mir Daten aus einer SPS ausliest und in einer HTML zur Verfügung stellt. Das funktioniert auch erstmal ganz gut.
Hier mal der wichtigste Teil meines Codes:
Der Code wird beim Laden der HTML gestartet und dann alle 500ms (zum Testen) erneut aufgerufen.
Nun hab ich aber das Problem, dass nach ~100 Aufrufen (in diesem Fall nach 50 Sekunden) folgender Fehler kommt:
Setze ich die Updatezeit auf 1000ms kommt der Fehler nach 100 Sekunden.

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 bin recht neu was das Programmieren mit JS angeht. Ich habe einen Webserver laufen welcher mir Daten aus einer SPS ausliest und in einer HTML zur Verfügung stellt. Das funktioniert auch erstmal ganz gut.
Hier mal der wichtigste Teil meines Codes:
Javascript:
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()", 500);
}
}
xmlhttp.send(null);
}
Der Code wird beim Laden der HTML gestartet und dann alle 500ms (zum Testen) erneut aufgerufen.
Nun hab ich aber das Problem, dass nach ~100 Aufrufen (in diesem Fall nach 50 Sekunden) folgender Fehler kommt:
Setze ich die Updatezeit auf 1000ms kommt der Fehler nach 100 Sekunden.

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?