# Vorladen der kompletten Webseite



## code-schreiber (25. August 2003)

Sehr geehrte Herren,

ich bin auf der Suche nach einem JavaScript, mit welchem ich alle Bilder meiner Homepage 'vorladen' kann, sodass die Webseite komplett angezeigt wird und die Bilder nicht einzeln geladen werden.

Bei der Suche in Ihrem Forum fand ich nur einen Thread, bei dem ein Entwickler die Bilder seiner Homepage vorlud, indem er sie in ein Java-Script-Array geschrieben hatte. Jetzt ist es aber bei mir so, dass ich nicht weiss, wieviele Bilder es auf der Webseite von mir geben wird, vorallem benutze ich viele kleine Bilder, sodass ich von einer Version absehe die die Bilder nur per Namen vorlädt, da es eine grosse Menge wäre die man in das Array schreiben müsste.

Lieber wäre mir eben ein bestimmtes Script, mit dem einfach alle Bilder geladen werden, und erst dann die Homepage angezeigt wird. Etwas Ähnliches habe ich schonmal gesehen, da zeigte sich einfach ein *'Loading-Screen'* und danach ploppte die Webseite komplett geladen dahinter auf.

Wenn Sie für mich einen intressanten Link hätten, wäre ich Ihnen sehr dankbar.

Mit freundlichen Grüssen

code-schreiber -


----------



## Andreas Gaisbauer (25. August 2003)

Hallo,

vielleicht kannst du mir follgendem Ansatz anfreunden:

```
<html>
<head>
  <script type="text/javascript">
      function preload(){
        document.getElementById('preload').style.display = 'none';
      }
  </script>
</head>
<body onLoad="preload()">
<span style="width:100%; height:100%; top:0px; left:0px; background-color:#fff; position:absolute; z-index:1; display:block;" id="preload">
now loading
</span>

<img src="http://images.deviantart.com/i/9/0/f/Annihilation.jpg">
</body>
</html>
```
Das Skript wartet bis die ganze Seite geladen wurde,  und versteckt dannach einen Layer, welcher über die ganze Seite gelegt wurde...

bye

//edit: hab hier im Beispiel ein extra großes Bild verlinkt um den Effekt besser demonstrieren zu können...


----------



## code-schreiber (25. August 2003)

Wirklich eine sehr gute Lösung 

Vielen Dank!


----------



## ragazzo (19. Januar 2004)

*Zusatzfrage*

Das gefällt mir auch! 

Wie kann man denn das so gestalten, dass sich sowohl Fotos als auch Webseiten Preloaden?


----------



## Gottox (19. Januar 2004)

Was meinst du mit "Webseiten"?


----------



## ragazzo (19. Januar 2004)

Ich will eine ganze Seite preloaden und zusätzlich auch ein Foto (das dann über diese neue - also nächste - Seite geöffnet werden kann. Es geht um die Seite Barhocker 

Es ist von dort eine Preisliste erreichbar (HTML) und eine Bilddatei für die lieferbaren Farben. Beides soll vorgeladen (aber nicht automatisch geöffnet) werden.  

DANKE! 

Manfred


----------



## Gottox (19. Januar 2004)

Aha... Du könntest z.B. die Seite die geladen werden soll in nen Iframe stecken. Müsste sogar mit dem Code oben zusammenarbeiten...

```
<iframe src="datei_zum_laden.html" style="position:absolute;left:-1000px;top:-1000px"></iframe>
<!-- Ich verwende hier kein "display:none;", weil es durchaus sein könnte, das Browser Seiten die nicht angezeigt werden, auch nicht laden...-->
```


----------



## ragazzo (19. Januar 2004)

Danke, 

was ein iframe ist weiss ich zwar (noch) nicht, aber das alles hier in Sachen "preload" erscheint mir sehr kompliziert. Ich habe schon 500 Beiträge gelesen und kenn mich nun überhaupt nicht mehr aus (ist auch kein Wunder denn ich bin von Beruf Schreiner).  

Da muss es aber doch irgendwo einen ganz einfachen Befehl geben der eine ganze HTML-Seite preloaden kann, und zusätzlich auch einen Befehl der ein Foto preloadet. Oder? 

Manfred


----------



## Sven Mintel (19. Januar 2004)

```
<script type="text/javascript">
<!--
//Bild vorladen
hocker=new Image();hocker.src='hocker.jpg';

//Seite bis zum Onload verbergen
function showDoc()
{
document.getElementsByTagName('body')[0].style.visibility='visible';
}
if(document.getElementsByTagName)
	{
	document.writeln('<style type="text/css"><!--');
	document.writeln('body{visibility:hidden;}');
	document.writeln('--></style>');
	window.onload=showDoc;
	}
//-->
</script>
```
Das ganze gehört in den <head>


----------



## ragazzo (19. Januar 2004)

Danke, 

das schaut gut aus! Wie ist das bei einer HTML-Seite?


----------



## Sven Mintel (19. Januar 2004)

Das muss in die HTML-Seite rein, irgendwo zwischen <head> und </head> .
Anstatt "hocker.jpg" musst du den korrekten Pfad zu dem Bild eintragen, welches vorgeladen werden soll, das wars.


----------



## ragazzo (19. Januar 2004)

Sorry, da habe ich mich unklar ausgedrückt, ich meinte was ist wenn ich eine HTML-Seite vorladen will? Wie schaut dann die Sache aus? 

Kann ich da statt der Datei mit der Endung  .jpg eine mit der Endung .html reinschreiben ?


----------



## Sven Mintel (19. Januar 2004)

Nö, das bringt nix.
Du kannst in die Seite ein verstecktes <iframe> packen, und dort als "src" die entsprechende Seite angeben.

Du machst dir damit aber wenig Freunde,...woher willst du wissen, dass der Besucher auf die entsprechende Seite will? ....würdest du das toll finden, wenn du auf allen Seiten im Netz erstmal Megabyteweise Zeugs laden musst, nur um eine einzige Seite zu sehen? 

Stell dir das mal bei Microsoft vor:
Bitte warten.... es werden 300GB an Daten vorgeladen, damit es schneller geht


----------



## madom (19. Januar 2004)

hallo fatalus

wie versteckt man ein iframe?

gruss m.


----------



## Sven Mintel (19. Januar 2004)

Hallo,Madom... z.B. mit dem Code, welchen Gottox weiter oben gepostet hat...
	
	
	



```
<iframe src="datei_zum_laden.html" style="position:absolute;left:-1000px;top:-1000px"></iframe>
```
 ....es ist dann zwar da, aber nie zu sehen, weil es ausserhalb des sichtbaren Bereichs positioniert wurde.


----------



## ragazzo (20. Januar 2004)

> _Original geschrieben von fatalus _
> *Nö, das bringt nix.
> Du kannst in die Seite ein verstecktes <iframe> packen, und dort als "src" die entsprechende Seite angeben.
> 
> ...


 Da ist was dran!   Aber in einzelnen Seiten mach das Sinn, z. B. bei dieser Barhockerseite  . Da ist ein Link zu einer Preisliste und ein Link zu einer größeren Bilddatei und wenn die 2 "pregeloadet" werden wär das sicher kein Fehler. 

Ich suche also eine ganz einfache Möglichkeit Bilder UND  HTML-Seiten vorzuladen (im Hintergrund). 

MM


----------



## ManuelPeh (2. Mai 2004)

Hallo alle miteinander 

Bisher bin ich hier bei Problemchen immer fündig geworden, ausser bei diesem. Also Folgendes:
Ich programmiere eine Clan-Homepage (Online-Gaming-Clan, siehe http://www.brotherhoodig.de ) in Javascript. Die Optik entspricht so ziemlich exakt der des eigentlichen Spiels, UT nämlich. Im Spiel befindet sich oben eine Menüzeile (mit ausklappenden Menüs beim Anklicken eines Menübuttons), darunter der Hauptframe und unten eine Infozeile. Das habe ich soweit auch schon ganz gut in den Griff bekommen.

Nun ist es so, dass ein ausgewählter Menüpunkt (wie Options, Members, News usw.) eine Seite im Hauptframe öffnet, die wie ein Fenster wirkt. Im Originalspiel lassen sich diese Fenster wie richtige Fenster übereinander öffnen, verschieben und auch mit einem Klick auf das X oben rechts wieder schliessen.
Wie ihr seht, ist es hier im Endeffekt wirklich nötig, die Inhalte mehrerer Webseiten in einem einzigen Frame darstellen, und diese auch einzeln verschieben zu können. Mit einer einzigen Seite im Hauptframe ist mir das Verschieben auch schon gelungen, siehe "History" auf oben genannter Webseite.
Dummerweise wird diese Seite beim Anklicken eines anderen Menüpunktes durch die neu erscheinende Seite ersetzt.

Weiss jemand, wie ich es trotzdem anstellen kann, mehrere Webseiten (auch ohne Preloading) innerhalb eines einzigen Frames zu öffnen und wie ich abfrage, ob die entsprechende Seite bereits offen ist (erneutes Laden beim Klick auf den Menüpunkt wäre dann ja überflüssig)?

Ich wäre für jede Hilfe sehr dankbar!


----------

