26.01.2024, 07:21
PS: Mir ist gerade auf gefallen, dass mein Code wahrscheinlich unnötig kompliziert ist. Du schriebst:
Wenn auch immer die selben Elemente aus der Antwort verarbeitet werden sollen, könnte man das so machen:
Die Elemente für die Ausgabe jeweils in einem Container zusammen fassen:
Dann brauchst Du nur noch die ID dieses Containers in den Daten:
Und dann die Auswertung so:
PPS: Man kann das noch weiter vereinfachen, wenn man die Klassen gleich den Keys in den Daten vom Server setzt. Würde dann so aussehen:
Zitat:Der Inhalt des " response.text " ist immer der Gleiche:
Wenn auch immer die selben Elemente aus der Antwort verarbeitet werden sollen, könnte man das so machen:
Die Elemente für die Ausgabe jeweils in einem Container zusammen fassen:
Code:
<div id="cont1">
<div class="dad"></div>
<div class="another-class"></div>
</div>
<div id="cont2">
<div class="dad"></div>
<div class="another-class"></div>
</div>
Code:
const data = [
{
url: 'http;//1.2.3.4/cm/usw',
idCont: 'cont1'
},
{
url: 'http;//4.5.6.7/cm/usw',
idCont: 'cont2'
}
];
const data2 = [
{ key: 'Hostname', idDest: 'dad'},
{ key: 'IPAdress', idDest: 'noch-ne-id' }
];
Code:
data.forEach(item => {
fetch(item.url).then(
// ...
const cont = document.getElementById(item.idCont);
data2.forEach(item2 => {
const dest = cont.querySelector('.' + item2.classDest);
dest.innerHTML = dataFromSever[item2.key];
});
PPS: Man kann das noch weiter vereinfachen, wenn man die Klassen gleich den Keys in den Daten vom Server setzt. Würde dann so aussehen:
Code:
<div id="cont1">
<div class="Total"></div>
<div class="Voltage"></div>
</div>
<div id="cont2">
<div class="Total"></div>
<div class="Voltage"></div>
</div>
<script>
const data = [
{
url: 'thread1245-fetch-javascript-forum-1.json',
idCont: 'cont1'
},
{
url: 'thread1245-fetch-javascript-forum-2.json',
idCont: 'cont2'
}
];
data.forEach(item => {
fetch(item.url).then(function (response) {
// Aus der Antwort vom Server
// das geparste JSON zurück geben:
return response.json();
}).then(function (parsed) {
// Jetzt steht das geparste JSON zur Verfügung.
const cont = document.getElementById(item.idCont);
for (key in parsed.StatusSNS.ENERGY) {
const dest = cont.querySelector('.' + key);
if (dest) {
dest.innerHTML = parsed.StatusSNS.ENERGY[key];
}
};
});
});
</script>
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)
(Andrι Gide (1869-1951), frz. Schriftst., 1947 Nobelpreis)