Ladereihenfolge festlegen
14.01.2007, Erklärung überarbeitet
Für einen Frameset wollen sie festlegen, dass der Frame 'links' zuerst mit Inhalt (HTML-Datei) gefüllt wird. Dann erst soll mit dem Laden der endgültigen Datei für den Frame 'rechts' begonnen werden.
Das würden sie immer dann so festlegen, wenn beide Frameinhalte sehr große (in kB) Dateien beinhalten, die sie dem Besucher aber (aus welchen Gründen auch immer) in einer bestimmten Rangfolge anzeigen möchten.
'So hat ihr Seitenbesucher schon mal etwas zum anschauen' und sie lenken das Augenmerk gezielt auf die Seite im linken Frame. Rechts könnte man 'wird geladen' anzeigen.
Eine echte Ladereihenfolge wird hier eigentlich nicht festgelegt. Für einen der Frames wird lediglich ein Nachladevorgang eingeleitet, sobald die im Frameset definierten Inhalte geladen sind.
Der Frameset als Ausgangsbasis
Für den erstrangigen (linken) Frame, wird bei der Notierung des Framesets der Dateiname der 'wichtigen' Datei eingetragen.
Für den zweitrangigen (rechten) Frame, wird bei der Notierung des Framesets der Dateiname einer 'Blinddatei' eingetragen. Diese Datei hat nur wenige kB und wird erst später gegen die endgültige Datei ausgetauscht.
|
|
<frameset rows="100,*">
<frame name="oben" src="menue.htm">
<frameset cols="50%,50%">
<frame name="links" src="seite1.htm">
<frame name="rechts" src="blank.htm">
</frameset>
</frameset>
Abbildung: Hier wird zuerst im Frame 'links' die Bild-Vorschau, im Frame 'rechts' eine Fülldatei geladen (so steht es in der Notierung des Framesets). Durch eine Erweiterung in der Frameset-Notierung wird der eigentliche Inhalt für den Frame 'rechts' später nachgeladen.
In diesem Beispiel mit 3 Frames werden 5 HTML-Dateien benötigt:
- die Framesetdatei
- eine Datei für das Menü
- seite1.htm - Datei für Frame 1
- blank.htm - Vorlader für Frame 2
- seite2.htm - Datei für Frame 2
Quellcode für die Frameset-Datei
Die Framesetdatei enthält neben der Notierung der HTML-Anweisungen für den Frameset zusätzlich das JavaScript mit der Funktion 'refreshFrame()'.
In diesem Frameset-Beispiel werden 3 Frames definiert: oben, links, rechts. Im Frameset-Tag ist der Funktionsaufruf eingetragen. Der Funktionsaufruf für 'refreshFrame()' wird eingeleitet mit onLoad, also erst dann ausgeführt, wenn der Inhalt des Framesets geladen ist. farblich gekennzeichnet:
Sie bestimmen den Frame, der zuletzt mit der endgültigen Seite gefüllt werden soll. Framename und Dateiname für die später zu ladende Datei werden in der Funktion eingetragen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<script type="text/javascript" language="JavaScript">
<!-- Begin
function refreshFrame() {
frames['rechts'].window.location.href = "seite2.htm";
}
// End -->
</script>
</head>
<frameset rows="100,*">
<frame name="oben" src="menue.htm">
<frameset cols="50%,50%" onLoad="refreshFrame();">
<frame name="links" src="seite1.htm">
<frame name="rechts" src="blank.htm">
</frameset>
</frameset>
</html>
Die Seite blank.htm wird temporär in den Frame geladen, der zuletzt mit der originalen Seite gefüllt werden soll
| |
|