Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Seiten schneller laden?

Empfohlene Antworten

Veröffentlicht

Hi!

Ich hab für meine Homepage eine Seite erstellt, auf der ein Java-Applet eingebaut ist. Das Applet braucht recht lange zum laden. Ich hab mal irgendwo gelesen, daß man die eine Seite schon in den Speicher laden kann, bevor sie überhaupt aufgerufen wird, also schon wenn die Startseite meiner HP geöffnet wird. Weiß aber leider nicht mehr, wo ich das gesehen hab.

Könnt ihr mir sagen, wie das geht?

Blue55

knock,knock....

gibt 2 möglichkeiten. die erste wäre, alles in eine tabelle zu laden (die komplette seite), da eine tabelle erst dargestellt wird, wenn der komplette inhalt geladen ist, die zweite ist ein javascript, in dem du jedes bild im head erstmal als objekt instanziert, dadurch wird es schon einmal geladen.

bild1=new Image;

bild1.src="Pfad zum Bild";

Eine andere Möglichkeit wäre ggf. mit einem Preloader zu arbeiten.Es wird dann erst die Seite geladen und dann der Preloader angezeigt.

Gruß M

Original geschrieben von Matrixmaster

knock,knock....

bild1=new Image;

bild1.src="Pfad zum Bild";

ist es so möglich die reihenfolge in der die bilder geladen werden festzulegen? oder geht das noch anders einfacher?

Musst die Bilder ganz normal einfügen und dann mit CSS visibility auf "hidden" setzen. Dann durch setTimeout nach und nach einblenden.

Beispiel:

<html><head><title>bilder laden</title></head>

<body>

<img id="bild1" src="bild1.gif" width=184 height=268 border="0" style="visibility:hidden">

<img id="bild2" src="bild2.gif" width=184 height=268 border="0" style="visibility:hidden">

<script language="JavaScript">

<!--

window.setTimeout("document.all.bild1.style.visibility = 'visible'",1000);

window.setTimeout("document.all.bild2.style.visibility = 'visible'",2000);

//-->

</script>

</body></html>

ne eingentlich hab ich ein paar background images und diese wollte ich als erstes vor allen anderen images laden lassen. gibts da ne möglichkeit?

Hier mal ein Preloaderscript für Bilder.

Einfach dorthin kopieren, wo der Preloadingbalken auf der Startseite erscheinen soll (Script muss evt. noch angepasst werden. ;)).

<script type="text/javascript">

<!-- begin hiding

startingColor = new Array() // <-- NICHT VERÄNDERN!

endingColor = new Array() // <-- NICHT VERÄNDERN!


// Hier deine Grafiken rein:

var yourImages = new Array("Bildpfade1",

"Bildpfad2",

"Bildpfad3") // Ersetzen und erweitern durch deine Grafiken


var locationAfterPreload = "datei.endung" // Hier den Pfad zur Seite die nach dem Vorladen geladen werden soll

var preloadbarWidth = 300 // Länge des Balkens

var preloadbarHeight = 13 // Höhe desselbigen

var backgroundOfGradient = "#64C4F5"


// Farbe mir der der Balken beginnt! Gib erste, dritte und fünfte Zahl/Buchstaben der Farbe an

startingColor[0] = "4"

startingColor[1] = "B"

startingColor[2] = "F"


// Wie oben nur die Farbe mit dem es endet

endingColor[0] = "1"

endingColor[1] = "8"

endingColor[2] = "F"

var gap = 7 // mind. 2! verändern, wenn es nen JS-Error gibt.


// NIX MEHR VERÄNDERN

if (!document.all) location.replace(locationAfterPreload)

var a = 10, b = 11, c = 12, d = 13, e = 14, f=15, i, j, ones = new Array(), sixteens = new Array(), diff = new Array();

var convert = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"), imgLen = yourImages.length;

var loaded = new Array(), preImages = new Array(), currCount = 0, pending = 0, h = 0, hilite = new Array(), cover = new Array();

var num = Math.floor(preloadbarWidth/gap);

for (i = 0; i < 3; i++) {

startingColor[i] = startingColor[i].toLowerCase();

endingColor[i] = endingColor[i].toLowerCase();

startingColor[i] = eval(startingColor[i]);

endingColor[i] = eval(endingColor[i]);

diff[i] = (endingColor[i]-startingColor[i])/num;

ones[i] = Math.floor(diff[i]);

sixteens[i] = Math.round((diff[i] - ones[i])*15);

}

endingColor[0] = 0;

endingColor[1] = 0;

endingColor[2] = 0;

i = 0, j = 0;

while (i <= num) {

hilite[i] = "#";

while (j < 3) {

hilite[i] += convert[startingColor[j]];

hilite[i] += convert[endingColor[j]];

startingColor[j] += ones[j];

endingColor[j] += sixteens[j];

if (endingColor[j] > 15) {

endingColor[j] -= 15;

startingColor[j]++;

}

j++;

}

j = 0;

i++;

}

function loadImages() {

for (i = 0; i < imgLen; i++) {

preImages[i] = new Image();

preImages[i].src = yourImages[i];

loaded[i] = 0;

cover[i] = Math.floor(num/imgLen)*(i+1)

}

cover[cover.length-1] += num%imgLen

checkLoad();

}

function checkLoad() {

if (pending) { changeto(); return }

if (currCount == imgLen) { location.replace(locationAfterPreload); return }

for (i = 0; i < imgLen; i++) {

if (!loaded[i] && preImages[i].complete) {

loaded[i] = 1; pending++; currCount++;

checkLoad();

return;

}

}

setTimeout("checkLoad()",10);

}

function changeto() {

if (h+1 > cover[currCount-1]) {

var percent = Math.round(100/imgLen)*currCount;

if (percent > 100) while (percent != 100) percent--;

if (currCount == imgLen && percent < 100) percent = 100;


//defaultStatus = "Loaded " + currCount + " out of " + imgLen + " images [" + percent + "%].";

pending--;

checkLoad();

return;

}

eval("document.all.cell" + (h+1) + ".style.backgroundColor = hilite[h]");;

h++;

setTimeout("changeto()",1);

}


//defaultStatus = "Loaded 0 out of " + imgLen + " images [0%]."

// end hiding -->


<!-- beging hiding

document.write('<table border="0" cellpadding="0" cellspacing="0" width="' + preloadbarWidth + '"><tr height="' + preloadbarHeight + '" bgcolor="' + backgroundOfGradient + '">');

for (i = 0; i < num; i++) {

document.write('<td width="' + gap + '" id="cell' + (i+1) + '"></td>');

}

document.write('</tr></table>');

document.write('<p><small><a href="javascript:location.replace(locationAfterPreload)">Ladevorgang Überspringen</a></small></p></font>')

loadImages();

// end hiding -->

</script>

Original geschrieben von Blue55

Hi!

Ich hab für meine Homepage eine Seite erstellt, auf der ein Java-Applet eingebaut ist. Das Applet braucht recht lange zum laden. Ich hab mal irgendwo gelesen, daß man die eine Seite schon in den Speicher laden kann, bevor sie überhaupt aufgerufen wird, also schon wenn die Startseite meiner HP geöffnet wird. Weiß aber leider nicht mehr, wo ich das gesehen hab.

Könnt ihr mir sagen, wie das geht?

Blue55

Liest hier eigentlich irgendkemand, was die Leute posten?

Er spricht von einem Java-Applet, nicht von einem Script. Ein Applet ist eine JAVA-basierte Anwendung, die in den Code eingebettet wird. Daher kann man sie auh nicht vorladen, weil die Daten erst bei Ausführung vom Server gezogen werden.

Die Geschwindigkeit der Ausführung hängt vom Client-Rechner ab.

Meine Empfehlung, wenns nicht sein muss, lass Java-Applets, die sind nun mal stinklangsam, da lässt sich nix dran ändern, ausser, du progst sie selber.

  • Autor
Original geschrieben von jomama

Liest hier eigentlich irgendkemand, was die Leute posten?

Er spricht von einem Java-Applet, nicht von einem Script. Ein Applet ist eine JAVA-basierte Anwendung, die in den Code eingebettet wird. Daher kann man sie auh nicht vorladen, weil die Daten erst bei Ausführung vom Server gezogen werden.

Die Geschwindigkeit der Ausführung hängt vom Client-Rechner ab.

Meine Empfehlung, wenns nicht sein muss, lass Java-Applets, die sind nun mal stinklangsam, da lässt sich nix dran ändern, ausser, du progst sie selber.

Danke für die Antwort!

In diesem Fall muß ich das Applet einfach haben... sieht cool aus. :)

Na ja, meine Besucher werden's überleben... :D

Wieso sind die schneller, wenn man die selbst macht??? Hab doch von dem Zeug keine Ahnung... :rolleyes:

Gruß

Blue

Original geschrieben von Blue55

Hi!

Ich hab für meine Homepage eine Seite erstellt, auf der ein Java-Applet eingebaut ist. Das Applet braucht recht lange zum laden. Ich hab mal irgendwo gelesen, daß man die eine Seite schon in den Speicher laden kann, bevor sie überhaupt aufgerufen wird, also schon wenn die Startseite meiner HP geöffnet wird. Weiß aber leider nicht mehr, wo ich das gesehen hab.

Könnt ihr mir sagen, wie das geht?

Blue55

Pack auf die Startseite ein unsichtbares Applet.

Dann wird das Java Framework geladen und das nächste Applet sollte schneller sichtbar sein.

Allerdings warten dann alle direkt auf deiner Startseite. :rolleyes:

Gruß Jaraz

Original geschrieben von Blue55

Wieso sind die schneller, wenn man die selbst macht??? Hab doch von dem Zeug keine Ahnung... :rolleyes:

Ich hab nur gemeint falls irgendwelche Codefehler drin sind, dauerts natürlich noch länger.

Was Jaraz sagt, stimmt natürlich.:uli

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.