Gregor: Bremst das Schnee-Script das System?

Hallo!
Ich habe u.g. JS als externe .js auf meiner Seite. Es handelt sich um ein 08/15-Schnee-Script :) Allerdings scheint es, dass das System sich verlangsamt: Wenn ich auf einen Link auf der "schneienden" Seite klicke, passiert erstmal gar nix! Das könnt ihr auch selbst auf www.tvgbasketball.de sehen. Hoffentlich könnt ihr mir helfen oder gg. nen anderes Script empfehlen?!
Vielen Dank im Voraus,

Gregor

// Hier das Script:
var no = 20;                   // number of snowflakes
var speed = 10;                // the smaler, the faster snowflakes
var snowflake = "images/snow.gif";    // picture source
var ns4b = (document.layers) ? 1 : 0;   // Netscape4.x
var b4up = (document.all) ? 1 : 0;      // MSIE4, Opera5, Netccape5
var dx, xp, yp;                // coordinate and position variables
var am, stx, sty;              // amplitude and step variables
var snowobj;
var i, doc_width = 800, doc_height = 600;

if (ns4b) {
   doc_width  = self.innerWidth;
   doc_height = self.innerHeight;
} else if (b4up) {
   doc_width  = document.body.clientWidth;
   doc_height = document.body.clientHeight;
} else {
   b4up = 1;                   // 800x600 screen-default
}// if

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
snowobj = new Array();

for (i=0; i<no; ++i) {         // iterate for every snowflake
   dx[i] = 0;                  // set coordinate variables
   xp[i] = Math.random()*(doc_width-50); // set position variables
   yp[i] = Math.random()*doc_height;
   am[i] = Math.random()*20;             // set amplitude variables
   stx[i] = 0.02 + Math.random()/10;     // set step variables
   sty[i] = 0.7 + Math.random();         // set step variables
   if (ns4b) {                           // set layers
      document.write("<LAYER NAME="flake"+ i +"" LEFT="15" "
      + "TOP="15" VISIBILITY="show"><IMG SRC=""
      + snowflake +"" BORDER=0></LAYER>");
   } else if (b4up) {
      document.write("<DIV ID="flake"+ i +"" STYLE=""
      + "position:absolute; z-index:"+ i +"; visibility:visible; "
      + "top:15px; left:15px;"><IMG SRC=""+ snowflake
      + "" BORDER=0></DIV>");
      snowobj[i] = eval (document.getElementById("flake"+i).style);
   }//if
}//for

function snowNS() {            // Netscape4 main animation function
   for (i=0; i<no; ++i) {      // iterate for every snowflake
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
         xp[i] = Math.random()*(doc_width-am[i]-30);
         yp[i] = 0;
         stx[i] = 0.02 + Math.random()/10;
         sty[i] = 0.7 + Math.random();
      }//if
         dx[i] += stx[i];
         document.layers["flake"+i].top = yp[i];
         document.layers["flake"+i].left = xp[i]
            + am[i]*Math.sin(dx[i]);
      }//for
   setTimeout("snowNS()", speed);
}//snowNS

function snowDocument() {      // MSIE4, Opera5, Netscape5 main
   for (i=0; i<no; ++i) {      // iterate for every flake
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
         xp[i] = Math.random()*(doc_width-am[i]-30);
         yp[i] = 0;
         stx[i] = 0.02 + Math.random()/10;
         sty[i] = 0.7 + Math.random();
      }//if
      dx[i] += stx[i];
      snowobj[i].top  = yp[i];
      snowobj[i].left = xp[i] + am[i]*Math.sin(dx[i]);
   }//for
   setTimeout("snowDocument()", speed);
}//snowDocument

if (ns4b) {                   // Netscape4
   snowNS();
} else if (b4up) {            // MSIE4, Opera5, Netscape5
   snowDocument();
}//if

  1. Hi Gregor,

    ich weiss ja nicht, wie schnell Deine Seite sonst ist - aber bei mir war sie ruck-zuck auf dem Bildschirm. Eine Verzögerung war für mich nicht zu erkennen.

    Gruß, Maniac

    1. Ich bemagele ja nicht den Aufbau. Aber wenn man auf Gästebuch klickt, so dauert das ein Bisschen...ohne Script geht das auch ohne warten! Naja, wenns nicht anders geht, dann nehm ich dieses kleine Manko gern in Kauf :)

      Hi Gregor,

      ich weiss ja nicht, wie schnell Deine Seite sonst ist - aber bei mir war sie ruck-zuck auf dem Bildschirm. Eine Verzögerung war für mich nicht zu erkennen.

      Gruß, Maniac

  2. Hallo

    Ich habe mir die Seite mal angesehen. Bei mir funkts alles. Auch schnell. Beim Anklicken von Links ist sofort die ausgewählte Seite aufgebaut. Ich sehe hier kein Problem.

    Gruß Marc

  3. Hallo Gregor,

    Ich habe u.g. JS als externe .js auf meiner Seite. Es
    handelt sich um ein 08/15-Schnee-Script :) Allerdings
    scheint es, dass das System sich verlangsamt:

    Natuerlich verlangsamt es das Client-System. Was denkst du
    denn? :)
    Ich an deiner Stelle wuerde das komplett weglassen. Bringt
    nichts (ausser angekratzten User-Nerven). Im Mozilla wuerds
    ueberigens eh nicht funktionieren.

    Gruesse,
     CK

    1. Hallo Christian,

      hab' den Ressourcenfresser erfolgreich mit Mozilla 1.0.1 mir anschauen können. Nette 100% Prozessorauslastung, aber geht.

      Gruss,

      Vinzenz

      1. Moin,

        hab' den Ressourcenfresser erfolgreich mit Mozilla 1.0.1 mir anschauen können. Nette 100% Prozessorauslastung, aber geht.

        Also der Mozilla 1.2.1 auf dem Mac OS X hier hat quasi angehalten (die Seite wurde noch nicht mal angezeigt) und ich musste ihn mit Gewalt schliessen.

        --
        Henryk Plötz
        Grüße aus Berlin
  4. Hallo Gregor,

    Ich habe u.g. JS als externe .js auf meiner Seite. Es handelt sich um ein 08/15-Schnee-Script :) Allerdings scheint es, dass das System sich verlangsamt: Wenn ich auf einen Link auf der "schneienden" Seite klicke, passiert erstmal gar nix! Das könnt ihr auch selbst auf www.tvgbasketball.de sehen. Hoffentlich könnt ihr mir helfen oder gg. nen anderes Script empfehlen?!

    Falls Du ein NT-ähnliches System hast, dann starte den Task-Manager, aktiviere die Registerkarte Systemleistung, lade anschließend in einem Browser <www.tvgbasketball.de>, sehe zu wie die Prozessorauslastung auf 100% steigt, schließe deine Seite, sehe zu wie die Prozessorauslastung wieder dramatisch abnimmt.

    Unter Linux verwende top (oder was ähnliches).

    Solche Skripts, wie auch 'Buchstabenflug' hinter dem Mauszeiger sind Ressourcenfresser ohne Ende.

    Gruss,

    Vinzenz

  5. Hallo,»» Hallo!

    Ich habe u.g. JS als externe .js auf meiner Seite. Es handelt sich um ein 08/15-Schnee-Script :) Allerdings scheint es, dass das System sich verlangsamt: Wenn ich auf einen Link auf der "schneienden" Seite klicke, passiert erstmal gar nix! Das könnt ihr auch selbst auf www.tvgbasketball.de sehen. Hoffentlich könnt ihr mir helfen oder gg. nen anderes Script empfehlen?!
    Vielen Dank im Voraus,

    Gregor

    // Hier das Script:
    var no = 20;                   // number of snowflakes
    var speed = 10;                // the smaler, the faster snowflakes
    var snowflake = "images/snow.gif";    // picture source
    var ns4b = (document.layers) ? 1 : 0;   // Netscape4.x
    var b4up = (document.all) ? 1 : 0;      // MSIE4, Opera5, Netccape5
    var dx, xp, yp;                // coordinate and position variables
    var am, stx, sty;              // amplitude and step variables
    var snowobj;
    var i, doc_width = 800, doc_height = 600;

    if (ns4b) {
       doc_width  = self.innerWidth;
       doc_height = self.innerHeight;
    } else if (b4up) {
       doc_width  = document.body.clientWidth;
       doc_height = document.body.clientHeight;
    } else {
       b4up = 1;                   // 800x600 screen-default
    }// if

    dx = new Array();
    xp = new Array();
    yp = new Array();
    am = new Array();
    stx = new Array();
    sty = new Array();
    snowobj = new Array();

    for (i=0; i<no; ++i) {         // iterate for every snowflake
       dx[i] = 0;                  // set coordinate variables
       xp[i] = Math.random()*(doc_width-50); // set position variables
       yp[i] = Math.random()*doc_height;
       am[i] = Math.random()*20;             // set amplitude variables
       stx[i] = 0.02 + Math.random()/10;     // set step variables
       sty[i] = 0.7 + Math.random();         // set step variables
       if (ns4b) {                           // set layers
          document.write("<LAYER NAME="flake"+ i +"" LEFT="15" "
          + "TOP="15" VISIBILITY="show"><IMG SRC=""
          + snowflake +"" BORDER=0></LAYER>");
       } else if (b4up) {

    document.write("<DIV ID="flake"+ i +"" STYLE=""

    da macht man heute nicht mehr, sondern mit innerHTML (IE4 und NN6) oder mit createElement ab NN6, Opera und ab IE6
    Ausserdem ist es erforderlich, dass die Schneeflockenbahnen im Voraus berechnet werden. Das geht mit Arrays ganz gut.

    Ich werde mich mal dieser Spielerrei annehmen :)

    Danke vielmal ;-)

    Michael

    --
    Hier bin ich Mensch, hier schreib ich rein