Bremst das Schnee-Script das System?
Gregor
- javascript
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
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
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
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
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
Hallo Christian,
hab' den Ressourcenfresser erfolgreich mit Mozilla 1.0.1 mir anschauen können. Nette 100% Prozessorauslastung, aber geht.
Gruss,
Vinzenz
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.
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
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
}// ifdx = 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