JCB: innerHTML-Wert ändern und Button disablen funzt nich

Hallo!

Ich rufe über einen Button eine JS-Funktion auf die einige Berechnungen etc. durchführt. Da diese 2-3 Sekunden dauern, hab ich zu Beginn der Funktion den Button, der die Funktion aufruft, auf disabled=true und zusätzlich noch einen Layer mit innerHTML auf "Bitte warten..." gesetzt. Es aber passiert nix. Wenn ich aber vor den eigentlichen Berechnungen eine Messagebox anzeigen lasse, dann wird alles schön auf den "Wartestatus" gesetzt. Woran kann denn das liegen? Das alles läuft übrigens im IE6.0.

Gruß,
Jan

  1. hi,

    Woran kann denn das liegen?

    an deinem code.
    sehen wir den hier irgendwo?
    nein.
    können wir deshalb nicht mehr dazu sagen?
    genau.

    gruss,
    wahsaga

    1. » an deinem code.

      sehen wir den hier irgendwo?
      nein.
      können wir deshalb nicht mehr dazu sagen?
      genau.

      jaja ;P. hier isser:

      function suche(suchwort, alt)
       {
         var a;
         var KS;
         var MN;
         var UT;
         var UY;
         var US;
         var UG;
         var BackColor;
         var Found;
         var GU_Sum;
         var DHeader = document.getElementById("doc_header").innerHTML;

      document.getElementById("doc_header").innerHTML="Bitte Warten...";

      document.getElementById("RefreshSumme").disabled=true;
         document.getElementById("Suchen").disabled=true;

      -----schnipp-----

      [...] Hab hier den Code für die "Berechnungen" (sind n paar for-schleifen) rausgenommen, denn der hat mit meinem problem nix zu tun. schon auprobiert :).

      ------schnapp------

      document.getElementById("doc_header").innerHTML=DHeader;
         document.getElementById("RefreshSumme").disabled=false;
         document.getElementById("Suchen").disabled=false;
       }

  2. Moin!

    Woran kann denn das liegen? Das alles läuft übrigens im IE6.0.

    Das liegt offenbar daran, dass der IE zwar intern deine Informationen zu der neuen Ansicht/Benutzbarkeit der Buttons entgegennimmt, aber die Darstellung auf dem Bildschirm nicht aktualisiert, sondern lieber alle Rechenpower auf die Bewältigung der Rechenaufgabe stürzt.

    Lösungsmöglichkeit wäre folglich, entweder auf die Anzeige zu verzichten (ein "Dauert einen kleinen Moment" als Text am Button reicht ja vielleicht aus), oder zwischen Umstellung der Darstellung und Berechnungsstart eine Pause zu machen, damit der IE die Gelegenheit nutzt, um die Grafik zu aktualisieren. Also beispielsweise setTimeout() nehmen.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. Lösungsmöglichkeit wäre folglich, entweder auf die Anzeige zu verzichten (ein "Dauert einen kleinen Moment" als Text am Button reicht ja vielleicht aus), oder zwischen Umstellung der Darstellung und Berechnungsstart eine Pause zu machen, damit der IE die Gelegenheit nutzt, um die Grafik zu aktualisieren. Also beispielsweise setTimeout() nehmen.

      Hi!

      Danke, mit dem Timeout klappts wunderbar :o)!

      Gruß,
      Jan