GreenAssaulter: Image in for-Schleife 7000 Mal zuweisen

Beitrag lesen

Hallo Anja,

die Idee ist an sich ganz gut, danke. Habe eine Variante mit <a>-Tags ausprobiert, die auch funktioniert und noch kürzer ist. Mir ist dabei allerdings  aufgefallen, dass der gesamte Seitenaufbau länger dauert (das Aufklappen des Trees dauert länger), was ich darauf zurückführe, dass das Bild nicht aus dem Cache sondern jedes Mal komplett neu geladen wird. Wenn ich also die Image-Source im <IMG>-Tag angebe, "merkt" der Browser, dass das immer das gleiche Bild ist, wenn die Image-Source aber als Klassenbestandteil (Background-Angabe) in style.css definiert ist, wird immer wieder neu geladen...

Hallo,

"Hase und Igel":

Nach jedem Schleifendurchlauf wird gerendert -
deshalb auch: "40 Sekunden auf einem P4 mit 1,8 GHz und 512 MB RAM" ;-)

nicht nur das. Wirklich richtig viel Zeit kostet

var coll = document.all.dieID;

wie es scheint, baut der IE diese Arrays erst dann auf, wenn sie abgefragt werden.

Mir ist das in einem anderen Optimierungsprojekt aufgefallen, da gab es einen signifikanten Performance-Gewinn, nachdem die Anzahl der Elemente reduziert wurden.

GreenAssaulter,

für dein Problem könnte folgende Lösung möglich sein:

statt eines Bildes, generierst du einen Span- oder Divbereich.

<span class="statusimage1"></span>

und dieser Klasse verpasst du ein Hintergrundbild

.statusimage1 {
 background-image:url(deineURL);
 background-repeat:no-repeat;
 width:20px;
 height:20px;
}

damit ersparst du dir, die Schleife mit JS. Soll das ganze noch anklickbar sein, dann verpasse dem Bereich zusätzlich den Eventhandler onclick und der Klasse die Eigenschaft cursor:pointer;

Viele Grüße

Antje