"Loading ..."-Text während HTTP-Anfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • "Loading ..."-Text während HTTP-Anfrage

    Hi,

    ich habe eine Reihe Bilder auf einer Seite, und möchte beim Mouseover Zusatzinformationen zu den Bildern laden. Das ganze funktioniert schon soweit, nur eine Kleinigkeit fehlt noch. Und zwar möchte ich dem Benutzer eine kleine Rückmeldung geben, wenn die Daten gerade geladen werden, damit er weiß was gerade passiert (á la Sanduhr in Windows).

    Hier mal ganz vereinfacht der aufbau:

    PHP-Code:
    function on(itemid){
      
    document.getElementById('item_tooltip').style.visibility 'visible';
      
    document.getElementById('item_tooltip').innerHTML 'loading ...';
      
    // zum Testen habe ich hier eine sleep-Funktion eingebaut,
    // im Original werden hier die Daten geladen
      
    sleep(1000); 
      
      
    document.getElementById('item_tooltip').innerHTML 'done';

    Die Funktion wird beim mouseover-Event ausgeführt. Zunächst soll ein DIV sichtbar gemacht werden, danach soll in dieses DIV "loading ..." geschrieben werden. Dann passiert eine Zeit lang etwas, und dann soll im DIV was anderes stehen (in diesem Beispiel "done", im Original die eigentliche Ausgabe).

    Leider kommt es nicht zum gewünschten Effekt, sondern es wird lediglich nach ca. 1 Sekunde (siehe sleep) der endgültige Text "done" ausgeben. Das "loading" erscheint zwischendrin nicht. Wenn ich den letzten Befehl dann auskommentiere, dauert es auch wieder ca. 1 Sekunde und das "loading ... " erscheint. Aber eben erst nach der restlichen Verarbeitung.
    Das ganze macht auf mich den Eindruck, als würde die innerHTML-Änderungen erst an das Element gegeben werden, wenn die Funktion abgeschlossen ist, und nicht direkt bei der Zuweisung.

    Nun natürlich die Frage: wie mache ich sowas "richtig"?
    [color=red]Geht nicht[/color] ist keine Fehlermeldung

  • #2
    recalc
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      Danke für die Antwort, aber mein Firefox sagt mir nur, dass es diese Methode nicht gäbe. Im IE funktioniert das Beispiel deines Links auch ganz gut, der FF macht es gar nicht.
      [color=red]Geht nicht[/color] ist keine Fehlermeldung

      Kommentar


      • #4
        document.getElementById('item_tooltip').style.visibility = 'visible';
        document.getElementById('item_tooltip').innerHTML = 'loading ...';

        mal umgedreht?

        Kommentar


        • #5
          Leider auch keine Wirkung ...
          [color=red]Geht nicht[/color] ist keine Fehlermeldung

          Kommentar

          Lädt...
          X