Internet Explorer (IE) 6 und das Bilder Caching
Web Entwicklung Dezember 9th, 2008Der IE 6 ist sicherlich schon betagt, was aber noch lange nicht bedeutet, dass er nicht noch reichlich Verwendung finden würde. Besonders wenn für eine Kundensoftware Internet Explorer 6 zwingend unterstützt werden muss, kann man sich auf viele Überraschungen gefaßt machen.
Eine davon ist der Umgang mit CSS (background) Bildern und dem Cache des Internet Explorer. Normalerweise sollte ein Webbrowser Elemente (wie z.B. Grafiken) nur einmal laden, und dann im internen Cache bereithalten, um ggf. wiederverwendet zu werden. Da häufig Elemente auf Webseiten – besonders Hintergrundgrafiken und Style Elemente – wiederkehrend sind, kann man damit Bandbreite und natürlich auch Zeit sparen.Der IE 6 hat sich dabei gedacht, dass er mit per Stylesheet (CSS) eingefügten Grafiken folgendermaßen verfährt: Nicht zwischenspeichern. Kein Caching. Immer neu laden, sicher ist … sicher falsch. Vor allem kann das dazu führen, dass es zum „Flackern“ bei Mouser-Over Effekten per CSS beim Internet Explorer 6 kommt.
Was kann man nun dagegen tun? Ab Service Pack 1 gibt es bei dem IE 6 ein undokumentiertes Property, mit dem sich die Situation etwas mildern läßt. Caching ist damit immerhin wieder möglich, jedoch werden Elemente stets neu geladen, die nachträglich eingefügt werden, selbst wenn mit identischer URL bereits Elemente im angewärmten Cache liegen. Aber besser als nichts.
Und so gehts:
Per JavaScript wird folgendes ausgeführt
try { document.execCommand("BackgroundImageCache", false, true); } catch(err) {}
Möchte man diesen ekel-Fix nur für den IE 6 verwenden und kommt sowieso jQuery zum Einsatz, funktioniert folgendes – z.B. im Header einer Seite nach Einbindung von jQuery.
if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) == 6)
{
try
{
document.execCommand("BackgroundImageCache", false, true);
}
catch (err)
{
}
}
Die Einstellung bleibt übrigens für die aktuelle Internet Explorer Sitzung aktiv.
Neue Kommentare