Ergebnis 1 bis 14 von 14
  1. #1
    Mia
    Mia ist offline Jungspund
    registriert
    07-08-2016
    Beiträge
    13

    Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Hallo Ihr Lieben,

    ich möchte wiederholt eine Eingabe machen, die dann umgerechnet wird und auf der Seite im HTML ausgegeben wird. Die Formeln sind hier für das Problem egal. Wichtig ist: Eingabe über prompt und dann eine Ausgabe im HTML.

    Vereinfacht (Ganz, ganz, ganz doll vereinfacht) sieht das so aus:

    Code:
    <html>
    <body onClick="wechsel();">
    
    <div id="Ergebniss">Test</div>
    
    <script>
    
    function wechsel(){
        
    do{
        var versuch = prompt("Zahl?");
        document.getElementById('Ergebniss').innerHTML = versuch;
    
    }while( versuch != 0 )
    }
    </script>
    
    </body>
    </html>
    Das Problem: So lange die Funktion läuft, werden lustig die Eingaben entgegengenommen, aber erst wenn die Funktion beendet wird, wird überhaupt und dann nur die letzte Eingabe in das innerHTML geschrieben

    Was mache ich falsch? Wieso ändert sich das angezeigte HTML nicht jedes Mal so lange die Funktion läuft? An welcher Stelle bin ich zu blond???

    Vielen Dank im Voraus?

  2. #2
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.289

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Was mache ich falsch?
    du nimmst an, dass dein Code Sachen macht, die er gar nicht machen soll.

    z.B.
    wird überhaupt und dann nur die letzte Eingabe in das innerHTML geschrieben
    steht das genau so in deinem Code drin.

    außerdem ist prompt() für User input ungeeignet => nutze Formulare (die sind für sowas extra gemacht).

  3. #3
    Mia
    Mia ist offline Jungspund
    registriert
    07-08-2016
    Beiträge
    13

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von Dormilich Beitrag anzeigen
    du nimmst an, dass dein Code Sachen macht, die er gar nicht machen soll.

    z.B. steht das genau so in deinem Code drin.
    "wird überhaupt und dann nur die letzte Eingabe in das innerHTML geschrieben"
    Aber er müsste doch bei jedem Durchlauf der While-Schleife das innerHTML neu schreiben. Oder aktualisiert sich das DOM grundsätzlich nicht so lange eine Funktion läuft?

    Zitat Zitat von Dormilich Beitrag anzeigen
    außerdem ist prompt() für User input ungeeignet => nutze Formulare (die sind für sowas extra gemacht).
    Hängt das mit dem Problem zusammen oder ist das ein allgemeiner Hinweis?

    Viele Grüße
    Mia :-)

  4. #4
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.289

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von Mia Beitrag anzeigen
    Oder aktualisiert sich das DOM grundsätzlich nicht so lange eine Funktion läuft?
    Da ich keine native modals verwende, weiß ich auch nicht, welche Optimierungen die Browser da benutzen.

    Zitat Zitat von Mia Beitrag anzeigen
    Hängt das mit dem Problem zusammen oder ist das ein allgemeiner Hinweis?
    indirekt und ja.

    Bei user input hängt man sich üblicherweise an die input events des Formulars (input, change, click, submit, blur, focus, keypress, etc.) um dann entsprechende Funktionen aufzurufen, die dann die Daten verarbeiten.

  5. #5
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.642

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von Mia Beitrag anzeigen
    Aber er müsste doch bei jedem Durchlauf der While-Schleife das innerHTML neu schreiben. Oder aktualisiert sich das DOM grundsätzlich nicht so lange eine Funktion läuft?
    doch, das dom ändert sich nach jeder anweisung, welche das dom ändert. der browser rechnet dann auch schon größen und positionen von elementen durch.
    allerdings wird das dom erst gerendert, wenn js fertig ist.

  6. #6
    Mia
    Mia ist offline Jungspund
    registriert
    07-08-2016
    Beiträge
    13

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von tsseh Beitrag anzeigen
    doch, das dom ändert sich nach jeder anweisung, welche das dom ändert. der browser rechnet dann auch schon größen und positionen von elementen durch.
    allerdings wird das dom erst gerendert, wenn js fertig ist.
    Gibt es irgend eine Möglichkeit das Rendern manuell anzustoßen?

    Viele Grüße :-)

  7. #7
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.642

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von Mia Beitrag anzeigen
    Gibt es irgend eine Möglichkeit das Rendern manuell anzustoßen?
    dafür gibt es keinen vernümpftigen grund.

  8. #8
    Mia
    Mia ist offline Jungspund
    registriert
    07-08-2016
    Beiträge
    13

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von tsseh Beitrag anzeigen
    dafür gibt es keinen vernümpftigen grund.
    Seit wann braucht man vernünftige Gründe um in der Programmierung etwas zu tun?
    Also geht es oder geht es nicht?

    Viele Grüße :-)

  9. #9
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.642

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    natürlich nicht, bzw indirekt schon, indem du dein script enden lässt.

  10. #10
    Mia
    Mia ist offline Jungspund
    registriert
    07-08-2016
    Beiträge
    13

    Red face AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von tsseh Beitrag anzeigen
    natürlich nicht, bzw indirekt schon, indem du dein script enden lässt.
    Vielen Dank auf jeden Fall für die Antworten. Jetzt weiß ich etwas mehr was in JavaScript geht, bzw. nicht geht.

    Ich finde es auf jeden Fall sehr interessant, dass Änderungen im DOM/ Anzeige offenbar erst wirksam werden, wenn das auslösende Skript selbst die Ausführung beendet hat - cool zu wissen

    Vielen, vielen Dank für Eure Bemühungen. Ich weiß es sehr zu schätzen!

  11. #11
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.289

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von Mia Beitrag anzeigen
    Ich finde es auf jeden Fall sehr interessant, dass Änderungen im DOM/ Anzeige offenbar erst wirksam werden, wenn das auslösende Skript selbst die Ausführung beendet hat - cool zu wissen
    Änderungen des DOM zu rendern ist ein ziemlich großer Aufwand. Es ergibt daher Sinn, bis zum letztmöglichen Zeitpunkt zu warten.

  12. #12
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.642

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von Mia Beitrag anzeigen
    Vielen Dank auf jeden Fall für die Antworten. Jetzt weiß ich etwas mehr was in JavaScript geht, bzw. nicht geht.

    Ich finde es auf jeden Fall sehr interessant, dass Änderungen im DOM/ Anzeige offenbar erst wirksam werden, wenn das auslösende Skript selbst die Ausführung beendet hat - cool zu wissen
    ich hab erst überlegt ob ich das jetzt poste oder nicht, aber "cool zu wissen" ist auch, das du das tatsächlich immer in der hand hast, wie lange dein script läuft
    Code:
    <!DOCTYPE html>
    <html>
      <head>
        <title></title>
      </head>
      <body>
        <div id='Ergebniss'></div>
        <script>
          function wechsel()
          {
            var versuch = prompt("Zahl?");
            if (versuch > 0)
            {
              document.getElementById('Ergebniss').innerHTML = versuch ;
            }
            else
            {
              document.getElementById('Ergebniss').innerHTML = "Zahl '" + versuch + "'ist nicht größer 0!";
              setTimeout(wechsel);
            }
          }
          wechsel();
        </script>    
      </body>
    </html>
    allerdings solltest du das nicht verwenden um den murks mit dem prompt zum laufen zu bringen, sonder ein formular nutzen, welches dazu gedacht ist usereingaben entgegenzunehmen

  13. #13
    Mia
    Mia ist offline Jungspund
    registriert
    07-08-2016
    Beiträge
    13

    Thumbs up AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Zitat Zitat von tsseh Beitrag anzeigen
    allerdings solltest du das nicht verwenden um den murks mit dem prompt zum laufen zu bringen, sonder ein formular nutzen, welches dazu gedacht ist usereingaben entgegenzunehmen
    Ja wie cool ist das denn?

    Keine Sorge. Es geht mir nicht darum irgend eine Lösung hinzukrampfen. Ich will JavaScript besser verstehen - und so etwas hilft mir dabei unglaublich.

    Schreib doch einfach zu Deiner super Lösung dazu: Kinder, probiert das zu Hause nur unter Aufsicht Eurer Eltern aus ;-)

    DANKE

  14. #14
    Avatar von xorg1990
    xorg1990 ist offline König
    registriert
    19-12-2013
    Beiträge
    847

    AW: Warum erfolgt Änderung im HTML erst nach Skript-Ende?

    Sowas ähnliches hatten wir erst allerdings mit Alert:
    http://forum.jswelt.de/javascript/62...-chrome.html#6 (Javascript-Alert und Chrome)

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 07-09-2012, 09:25
  2. Antworten: 8
    Letzter Beitrag: 17-10-2010, 13:53
  3. Antworten: 2
    Letzter Beitrag: 11-10-2008, 03:11
  4. Javascript erst nach aufforderung in HTML ausführen
    Von chris1898 im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 10-03-2008, 12:10

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •