• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[GELOEST] Mehrere ajax hintereinander

Werbung:
z.B. als async / await, oder Promise.all()
Wie geht das? Habe von JavaScript nicht so viel Ahnung.

Was muss ich an diesem Ajax Code ändern?
HTML:
 <script>
                  window.onload = function () {
                    div=document.getElementById('text4');
                    var linksrc = "Änderungen/Home/Inhalt4/text.txt";
                  
                    let xhr = new XMLHttpRequest ();
                    xhr.onreadystatechange = function () {
                      if (this.readyState === 4 && this.status === 200) {
                        let response = this.responseText;
                         div.innerHTML+=response;
                        div.style.color='black';
                        }
                    }
                    xhr.open ("GET", linksrc);
                    xhr.send ();
                  }
                  </script>
 
Zuletzt bearbeitet:
Werbung:
Eigentlich könnte man das alles ganz anders bauen und alles über ein Script machen ( 1 mal Ajax Script ).
Zu den ersten Fehlern
1. Element p1 gibt es nicht.
Auch wenn man es Theoretisch bei html5 nutzen darf würde ich lieber drauf verzichten.
2. Links mit Sonderzeichen sind auch nicht zu empfehlen " Änderungen/Home/Inhalt1/text.txt ".
 
Werbung:
Bei deinen Scripten nutzt du ja auch überall die gleichen Variabeln.
Normalerweise sollte in der Console 4 Requeste stehen.
Zu sehen ist nur der letzte.
Wenn dann gibst du da verschiedene Variabeln oder machst es ganz anders.
Das ganz andere zeige ich dir gleich
 
Ich meine das so mit einen Ajax Script
Code:
<script>
window.onload = function () {
var links=['anderungen/Home/Inhalt1/text.txt','anderungen/Home/Inhalt2/text.txt','anderungen/Home/Inhalt3/text.txt','anderungen/Home/Inhalt4/text.txt'];

  var ids=['text1','text2','text3','text4'];

  for(h=0; h < links.length; h++){    
        let div=document.getElementById(ids[h]);
        let xhr = new XMLHttpRequest ();
        xhr.onreadystatechange = function () {
             if (this.readyState === 4 && this.status === 200) {
                let response = this.responseText;
                div.innerHTML+=response;
                div.style.color='black';
             }else{
                div.innerHTML='Error beim Laden';
             }
        }
        xhr.open("GET", links[h]);
        xhr.send();
   }
}
</script>

Kann man zwar auch noch besser machen,aber sollte dir zeigen wie ich das meine .
Außerdem sollten jetzt so auch alle geladen und angezeigt werden.
So könnte man auch 100 Seiten laden und man muss nur den Link und id dazu geben
 
Werbung:
Ich meine das so mit einen Ajax Script
Code:
<script>
window.onload = function () {
var links=['anderungen/Home/Inhalt1/text.txt','anderungen/Home/Inhalt2/text.txt','anderungen/Home/Inhalt3/text.txt','anderungen/Home/Inhalt4/text.txt'];

  var ids=['text1','text2','text3','text4'];

  for(h=0; h < links.length; h++){  
        let div=document.getElementById(ids[h]);
        let xhr = new XMLHttpRequest ();
        xhr.onreadystatechange = function () {
             if (this.readyState === 4 && this.status === 200) {
                let response = this.responseText;
                div.innerHTML+=response;
                div.style.color='black';
             }else{
                div.innerHTML='Error beim Laden';
             }
        }
        xhr.open("GET", links[h]);
        xhr.send();
   }
}
</script>

Kann man zwar auch noch besser machen,aber sollte dir zeigen wie ich das meine .
Außerdem sollten jetzt so auch alle geladen und angezeigt werden.
So könnte man auch 100 Seiten laden und man muss nur den Link und id dazu geben
Danke, funktioniert jetzt. Habe Error beim laden einfach rausgelöscht.
 
Zurück
Oben