Versteckte Frames für clientseitiges Caching

In einem früheren Artikel wurde eine Browser-basierte Anwendung beschrieben, die Objekte im Voraus in versteckte Frames lädt, um die Performance der Anwendung zu verbessern. Bei diesen Objekten handelte es sich um Auswahl-Boxen, Grafiken und Java Swing-Applets. Einmal geladen, wurden diese Objekte aus dem versteckten Frame in einen sichtbaren Frame kopiert, wo sie wie jedes andere Objekt funktionierten. Das Laden im Voraus verbesserte zwar deutlich die Performance, aber der Vorgang selber dauerte fast fünf Minuten, und das bei Ethernet-Geschwindigkeit. Mit einem normalen Modem hätte die Zeit gereicht, hinaus zu gehen um Kaffee und Kuchen zu besorgen.

Das Laden von Objekten im Voraus hat sicher seine Vorteile, aber diese spezielle Implementierung hatte doch ihre Macken. Also entschied ich mich, die Sache von einer anderen Seite anzugehen. Anstatt die Objekte im Voraus zu laden, speicherte ich alle Objekte, die mehr als einmal verwendet würden, in einem Cache zwischen. Und anstelle eines eigenen versteckten Frames für jedes auf der Client-Seite zwischengespeicherte Objekt benutzte ich einen versteckten Frame mit mehreren mit diesem verknüpften Inline-Frames. Dadurch hatte ich die Möglichkeit, über das DOM-Objekt Frames Collection zu sehen, welche Elemente bereits im Cache waren. Wenn z.B. der Name des versteckten Frames Dwarfs ist, wäre die Frames Collection top.Dwarfs.frames. Um einen Inline-Frame namens Grumpy zu finden, würde man eine JavaScript-Funktion wie in Listing A verwenden.

Die Funktion inlineFrame findet einen vorhandenen Inline-Frame, aber was ist, wenn der Inline-Frame gar nicht existiert und Null zurückgegeben wird? Nun, wenn es den Frame noch nicht gibt, müssen wir ihn eben erstellen.

Auf den ersten Blick scheint das dynamische Erstellen eines Inline-Frames eine leichte Sache. Das stimmt grundsätzlich, andererseits gibt es dabei auch ein paar unerwartete Probleme. Der Anfang ist recht einfach, aber man muss den document.readyState des Inline-Frames überprüfen, um herauszubekommen, wann er fertig ist. Und hierbei kann es Schwierigkeiten geben.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Facebook Marketplace: EU verhängt Geldbuße von fast 800 Millionen Euro gegen Meta

Die EU-Kommission kritisiert die Verknüpfung von Facebook und dem hauseigenen Online-Kleinanzeigendienst. Sie sieht darin einen…

2 Stunden ago

Umfrage: Angestellte in Deutschland unterschätzen NIS-2-Richtlinie

Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…

12 Stunden ago

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

1 Tag ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

1 Tag ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

2 Tagen ago

Chrome 131 schließt zwölf Sicherheitslücken

Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…

2 Tagen ago