elvaube: Preloader für PDF Dokumente erstellen

Hallo zusammen, aus dem Internet habe ich mir folgendes Script kopiert:

<script language=JavaScript1.2>

<!-- begin hiding

startingColor = new Array()

endingColor = new Array()

var yourImages = new Array("GRAFIK.GIF","2. Datei","3. Datei usw.")

var locationAfterPreload = "DATEINAME DER DATEI, DIE NACH DEM PRELOADER ERSCHEINEN SOLL"

var preloadbarWidth = 250

var preloadbarHeight = 10

var backgroundOfGradient = "#FFFFFF"

startingColor[0] = "F"

startingColor[1] = "F"

startingColor[2] = "F"

endingColor[0] = "0"

endingColor[1] = "0"

endingColor[2] = "0"

var gap = 7

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 = currCount + " von " + imgLen + " Dokumenten geladen (" + percent + "%).";

pending--;

checkLoad();

return;

}

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

h++;

setTimeout("changeto()",1);

}

defaultStatus = "0 von " + imgLen + " Dokumenten geladen (0%)."

// end hiding -->

</script>

<center>
  <b>Dokument wird geladen...</b><p>

<script language=JavaScript1.2>

<!-- 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 class="normal" href="javascript:location.replace(locationAfterPreload)">Ladevorgang Überspringen</a></small></p></font>')

loadImages();

// end hiding -->

</script>

</center>

Das Problem ist nun das Array; gebe ich hier statt Bildern PDF Dokumente an, so wird das Script nicht mehr ausgeführt. Als JS Newbie kann ich mir da selber nicht weiterhelfen und richte meine Frage an euch Profis :)

cu und Danke für jeden Tipp,
elvaube

  1. Das Problem ist nun das Array; gebe ich hier statt Bildern PDF Dokumente an, so wird das Script nicht mehr ausgeführt. Als JS Newbie kann ich mir da selber nicht weiterhelfen und richte meine Frage an euch Profis :)

    Kannst du mir sagen, was ein preloader bringen soll?
    Wem tust du damit einen gefallen?
    Denen die JS ausgeschaltet haben und nichts mehrt passiert?
    Denen mit einem Modem, die sich wundern das nichts mehr passiert?
    Denen die aus versehn auf deine Seite kamen und sich dann ungefragt erstmal tonnenweise Grafiken runterladen müssen?
    (Es gibt User, die ihren Internetzugang nach Menge abrechnen, d.h. du zwingst denen Kosten auf, ohne das es sie eine Wahl haben)

    Du sagst jetzt bestimmt, dass der Seiten aufbau schneller geht (was nicht stimmt, er egth langsamer, das du zweimal auf die Grafiken zugreigen musst (einmal von der Fetsplatte) und das es blöd aussieht wenn's so rumzappelt (was es nur im IE tut).

    Dagegen hilft, wenn du bei allen Grafiken die Größe mitangibst.

    So ein Prelaoder ist unnötig!

    Struppi.

    P.S. Selbst wenn du immer noch der Meinung bist ein preloader wäre was tolles, bleibt die Antwort auf deine Frage: Es geht zum Glück nicht!

    1. Das Problem ist nun das Array; gebe ich hier statt Bildern PDF Dokumente an, so wird das Script nicht mehr ausgeführt. Als JS Newbie kann ich mir da selber nicht weiterhelfen und richte meine Frage an euch Profis :)

      Kannst du mir sagen, was ein preloader bringen soll?
      Wem tust du damit einen gefallen?
      Denen die JS ausgeschaltet haben und nichts mehrt passiert?
      Denen mit einem Modem, die sich wundern das nichts mehr passiert?
      Denen die aus versehn auf deine Seite kamen und sich dann ungefragt erstmal tonnenweise Grafiken runterladen müssen?
      (Es gibt User, die ihren Internetzugang nach Menge abrechnen, d.h. du zwingst denen Kosten auf, ohne das es sie eine Wahl haben)

      Du sagst jetzt bestimmt, dass der Seiten aufbau schneller geht (was nicht stimmt, er egth langsamer, das du zweimal auf die Grafiken zugreigen musst (einmal von der Fetsplatte) und das es blöd aussieht wenn's so rumzappelt (was es nur im IE tut).

      Dagegen hilft, wenn du bei allen Grafiken die Größe mitangibst.

      So ein Prelaoder ist unnötig!

      Struppi.

      P.S. Selbst wenn du immer noch der Meinung bist ein preloader wäre was tolles, bleibt die Antwort auf deine Frage: Es geht zum Glück nicht!

      Hi, Danke für die Antwort. Den Preloader wollte ich für eine interne Firmenseite nutzen, damit die Mitarbeiter überhaupt wissen, das noch etwas kommen wird. Manche Rechner im LAN sind etwas langsamer, so dass anstelle eines Dokuments nur eine weiße Seite angezeigt wird. Der Preloader soll dann dem Mitarbeiter anzeigen, dass etwas geladen wird.

      cu elvaube

      1. Moin Moin !

        Hi, Danke für die Antwort. Den Preloader wollte ich für eine interne Firmenseite nutzen, damit die Mitarbeiter überhaupt wissen, das noch etwas kommen wird. Manche Rechner im LAN sind etwas langsamer, so dass anstelle eines Dokuments nur eine weiße Seite angezeigt wird. Der Preloader soll dann dem Mitarbeiter anzeigen, dass etwas geladen wird.

        Mach's anders, je nach dem, wie in "Deinem" Intranet die Browser eingstellt sind.

        PDF werden heruntergeladen und in separaten Reader geöffnet: Ladeseite mit einem animierten GIF, das Aktivität "vortäuscht" (Knight-Rider-Lauflicht oder so) und die PDF-Datei per Refresh o.ä. ausliefert.

        PDF werden im Browser per Plugin angezeigt: Mit IFrames und DHTML die noch ladende PDF-Datei mit einem animierten GIF überlagern. (Hat mein Kollege in ähnlicher Form gerade gebaut, ist aber "etwas" aufwendiger.)

        Das macht die Sache zwar nicht schneller, zeigt dem Normal-Benutzer aber, daß noch etwas passiert.

        Alexander

        --
        Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
  2. Hallo,

    Das Problem ist nun das Array; gebe ich hier statt Bildern PDF
    Dokumente an, so wird das Script nicht mehr ausgeführt.

    Ein Browser, ein gut Konfigurierter fragt erst Laden oder
    Speichern soll, dann laed er die Datei.

    Der Browser selbst kann ja keine PDF's Darstellen, dazu braucht
    er ja ein Plug-in um diese Darzustellen. Und erst wenn das
    Einstoepselteil geladen ist kann der Browser PDF's darstellen.

    Und hier haengt es dann auch wieder davon ab, ob das Plug-in mit
    oder ohne Aktiviertes JavaScript laeuft. Aber dann ist der
    Download ja schon, meistens, laengst beendet. Bei groesseren
    Dateien laedt dann Acrobat die weiter.

    gruesse
      jens mueller

    --
    Alles sollte so einfach wie möglich gemacht werden,
    - aber nicht einfacher. / Albert Einstein Physiker (1879-1955)