Günther Roll: onMouseover / onMouseOut zu langsame Reaktion

Hallo zusammen,

ich habe häufig das Problem, dass die Reaktion (Grafikwechsel bei Verweisen) beim "onMouseOvern" bzw. "onMouseOuten" sehr lange dauert (ca. 2 Sek.) - das macht natürlich den Effekt kaputt. Dieses Phänomen tritt nur bei hochgeladenen Seiten auf - lokale Seiten reagieren flott. Ich vermute deshalb, dass die Grafiken nachgeladen werden. Es geht um winzige (1K) GIF-Grafiken.

Besteht die Möglichkeit, zu erzwingen, dass die Grafiken im Speicher gehalten bleiben, um dieses nachladen zu verhindern. Oder liegt es an ganz etwas anderem?

Vielen Dank

Günther

  1. Hallo Günther,

    ich habe häufig das Problem, dass die Reaktion (Grafikwechsel bei Verweisen) beim "onMouseOvern" bzw. "onMouseOuten" sehr lange dauert (ca. 2 Sek.) - das macht natürlich den Effekt kaputt. Dieses Phänomen tritt nur bei hochgeladenen Seiten auf - lokale Seiten reagieren flott. Ich vermute deshalb, dass die Grafiken nachgeladen werden. Es geht um winzige (1K) GIF-Grafiken.

    Wenn Du lokal Deine Grafiken lädst, dann geht das halt viel schneller als im Netz, weil Du ja einen viel höheren Datentransfer hast.

    Besteht die Möglichkeit, zu erzwingen, dass die Grafiken im Speicher gehalten bleiben, um dieses nachladen zu verhindern. Oder liegt es an ganz etwas anderem?

    Du kannst mit einer kleiner JavaScript-Anweisung die Grafiken, die erst im Laufe der Benutzung der Seite geladen werden, sofort beim Seitenaufruf laden.

    Zum Beispiel:
    Wechselbild1 = new Image(); Wechselbild1.src = "bild1.jpg";

    Diese Deklaration kannst Du für alle benötigten Grafiken am Anfang Deiner JS-Programmierung schreiben und damit lädt der Browser zuerst die Grafiken und dann den ganzen Rest. Dann hast Du keine Verzögerungen mehr.

    Ich hoffe, Dir geholfen zu haben.

    Grüße

    Andreas

    1. Hallo Andreas,

      zunächst mal herzlichen Dank für dei superschnelle Reaktion - leider bringt sie mich nicht weiter. Die Sache mit den niedrigeren Transfer-Raten aus dem Internet ist mir schon klar und die von Dir vorgeschlagenen Anweisungen ( ... = new Image()) benutze ich schon.

      Die Reaktion ist trotzdem extrem träge; ich vergleiche das mit anderen Seiten im Netz, die ich besuche - da gehts meist augenblicklich. Trotz <... = new Image()> werden die Grafiken nicht im Speicher gehalten - das sehe ich daran, dass beim "MouseOvern" und "MouseOuten" die Daten-Transferanzeige (Mini-Monitor) in der Windows-Statusleiste kurz aufleuchtet.

      Gruß und vielen dank trotzdem

      Günther

      ________________________________________

      Hallo Günther,

      ich habe häufig das Problem, dass die Reaktion (Grafikwechsel bei Verweisen) beim "onMouseOvern" bzw. "onMouseOuten" sehr lange dauert (ca. 2 Sek.) - das macht natürlich den Effekt kaputt. Dieses Phänomen tritt nur bei hochgeladenen Seiten auf - lokale Seiten reagieren flott. Ich vermute deshalb, dass die Grafiken nachgeladen werden. Es geht um winzige (1K) GIF-Grafiken.

      Wenn Du lokal Deine Grafiken lädst, dann geht das halt viel schneller als im Netz, weil Du ja einen viel höheren Datentransfer hast.

      Besteht die Möglichkeit, zu erzwingen, dass die Grafiken im Speicher gehalten bleiben, um dieses nachladen zu verhindern. Oder liegt es an ganz etwas anderem?

      Du kannst mit einer kleiner JavaScript-Anweisung die Grafiken, die erst im Laufe der Benutzung der Seite geladen werden, sofort beim Seitenaufruf laden.

      Zum Beispiel:
      Wechselbild1 = new Image(); Wechselbild1.src = "bild1.jpg";

      Diese Deklaration kannst Du für alle benötigten Grafiken am Anfang Deiner JS-Programmierung schreiben und damit lädt der Browser zuerst die Grafiken und dann den ganzen Rest. Dann hast Du keine Verzögerungen mehr.

      Ich hoffe, Dir geholfen zu haben.

      Grüße

      Andreas

      1. Hi!

        Die Reaktion ist trotzdem extrem träge; ich vergleiche das mit anderen Seiten im Netz, die ich besuche - da gehts meist augenblicklich. Trotz <... = new Image()> werden die Grafiken nicht im Speicher gehalten - das sehe ich daran, dass beim "MouseOvern" und "MouseOuten" die Daten-Transferanzeige (Mini-Monitor) in der Windows-Statusleiste kurz aufleuchtet.

        Wenn Du zum Bildwechsel die Zuweisung der .src-Eigenschaft machst, was weist Du dann zu, wieder den ganzen Dateinamen oder die .src-Eigenschaft des vorgeladenen Bildes (im Bsp. Wechselbild1.src)? Ich denke, wenn Du letzteres tust, sollte es passen. Zu bemerken waere noch, dass der IE in irgendeiner Version eine Bug mit seinem Cache hat (ist bei MS ein recht weitrverbreitetes Problem), waere also nicht verwunderlich, wenn der da querschiesst. Allerdings wuerde es dann wohl auch mit anderen Seiten nicht gehen.

        So long

        1. Hallo,

          vielen Dank für Deine Antwort, aber auch die hat mich nicht weitergebracht. Ich habe gestern abend noch mal alles mögliche probiert - das MouseOvern ist und bleibt aber lahm. Ich mache das genauso, wie in sämtlichen Foren beschrieben. Und das Beste ist, dass der Effekt auf fremden Seiten, z.B.

          http://www.teamone.de/selfhtml/tedga.htm

          , wirklich genauso ist, wie er sein sollte - obwohl ich fast haargenau den gleichen Code benutze.

          Bei mir handelt es sich allerdings um mehr (6) Grafiken, die sind aber kleiner - jeweils 950 Bytes. Meine 6 Grafiken zusammen sind kleiner als eine einzige im oben angegebenen SELFHTML-Musterbeispiel.

          Aus irgendeinem Grund werden meine Grafiken (GIF) nicht in den Speicher geladen, sondern jedesmal neu angefordert.

          In seltenen Fällen scheint es so zu sein, dass eine oder zwei Grafiken doch geladen sind, und der Wechsel entsprechend schnell vor sich geht.
          In solchen Fällen kann ich noch ein anderes interessantes Phänomen beobachten: gehe ich mit der Maus auf eine geladene Grafik, erscheint nach rechter Maustaste/Bild speichern der Dateidialog mit dem erwarteten Namensdefault "GrafikName.gif"; mache ich das gleiche auf einer Grafik mit "Ladehemmung" erscheint der Defaultwert "Unbekannt.bmp" im Dateidialog. Das heisst doch wohl, dass der Browser nicht mehr die Quelle kennt, sondern nur noch weiß, wo die Grafik im Grafikspeicher steht. Das Verhalten ist unabhängig davon ob ich den IE5 oder den IE5.5 benutze.

          Also ich verstehe das nicht ...

          schönen Gruß

          Günther

          Hi!

          Die Reaktion ist trotzdem extrem träge; ich vergleiche das mit anderen Seiten im Netz, die ich besuche - da gehts meist augenblicklich. Trotz <... = new Image()> werden die Grafiken nicht im Speicher gehalten - das sehe ich daran, dass beim "MouseOvern" und "MouseOuten" die Daten-Transferanzeige (Mini-Monitor) in der Windows-Statusleiste kurz aufleuchtet.

          Wenn Du zum Bildwechsel die Zuweisung der .src-Eigenschaft machst, was weist Du dann zu, wieder den ganzen Dateinamen oder die .src-Eigenschaft des vorgeladenen Bildes (im Bsp. Wechselbild1.src)? Ich denke, wenn Du letzteres tust, sollte es passen. Zu bemerken waere noch, dass der IE in irgendeiner Version eine Bug mit seinem Cache hat (ist bei MS ein recht weitrverbreitetes Problem), waere also nicht verwunderlich, wenn der da querschiesst. Allerdings wuerde es dann wohl auch mit anderen Seiten nicht gehen.

          So long