JavaScript beschleunigen

Hallo,

ich habe ein kleines Problem mit JavaScript im IE 5.5. Ich berechne etliche Zufallszahlen (20.000) und gebe dynamisch per

document.all.xyz.innerHTML += „“;

10.000 Bilder aus. Leider läuft das ganze auf einem P2-350 mit 64 MB RAM nicht in akzeptabler Geschwindigkeit, d.h. er benötigt über fünf Minuten für das ganze.

Wie kann ich das beschleunigen? Den Trick, alle innerHTMLs erst in einem Textstring zu sammeln, und nur diesen dann auszugeben, habe ich schon verwendet. Hat noch jemand eine Idee?

Hier der Code der Funktion:

for(i = 1; i "
}

Danke,

Golo Haas

http://www.golohaas.de - the web the way you want it

Hallo,

wie waere es wenn Du eine reine C-Routine schreibst und dann per CGI ausspuckst…oder ien Perl-Interpreter, denn die lesen Code nur einmal…

Nein schmarn, Du kannst die menge an verarbeitenden Daten immer derart steigern, dass jeder noch so gut optimierter Algorithmus langsam wird. Deine Performance wird letztendlich doch durch die Script-Sprache als Interpreter-Sprache und durch die Schnelligkeit mit der die Images geladen werden, begrenzt. Da wirkt jeder Versuch einer Optimierung wie ein Tropfen auf den heissen Stein.

CIAO

Dein Script sieht mir fast so aus, als versuchst Du ueber statistische Numerik die Flaeche eines Kreises mit Radius eins auszurechnen, oder wie…???

Hi,

leider kann ich kein CGI einsetzen, hast Du noch eine Idee?

Danke,

Golo Haas

http://www.golohaas.de - the web the way you want it

Hi.

Schaut fast so aus, als würdest du versuchen, eine mathematische Funktion mit lauter Pixelbildchen auf die HTML-Seite zu zeichnen.

Also das wirst du so bestimmt nicht mehr beschleunigen können.
Ich würde dir empfehlen, ein Java-Applet zu programmieren. Diese können nämlich Zeichnen.

Schau dir mal an, wie groß deine HTML-Datei wird, wenn du 20.000 - Tags drinnen hast. Wer soll das noch runterladen bzw. die Zeichnerei über sich ergehen lassen?

mfG,

J.P.Jarolim

du willst einen kreis einfaden lassen!

dazu sage ich dir, diese art und weise ist pervers :wink: !!!

das teil wird das schon in heilwegs annehmbarer zeit machen koennen.

for (z1=0;z1\<10000;z1++)
 {
 document.write("z1:"+z1+" x "+Math.random()+"y "+Math.random()+"\<br\>\n");
 }

dauert bei mir unter 20sec.

das problem ist bloss du siehst es nicht. warum?

zuerst wird das ganze ganz schoen schnell gehen, aber nach einer weile siehst du kaum noch veraenderung, weil sich die images immer mehr ueberdecken.
du musst dir also einen algorithmus einfallen lassen, der nur an noch nicht gefuellten stellen punkte setzt.

und dann 10.000 objekte dynamisch positionieren? beim netscape sind bei 500 obj. schluss. und dass ist schon extreeeem heavy.
dann wird er weit ueber 100mb im arbeitsspeicher brauchen (auf einer normalen layerseite sind es im durchschnitt 30-40mb)

loesung: mit groesseren punkten arbeiten, sieht best. ziehmlich scheisse aus, oder aber das einzig richtige: mach es mit 'nem ani-gif

Hallo,

nein, ich will keinen Kreis einfaden lassen, aber danke für den tollen Tipp :wink:.

Grüße,

Golo Haas

http://www.golohaas.de - the web the way you want it

Problem gelöst
Hi,

danke, ich habe es jetzt wirklich über ein Java-Applet gelöst.

Grüße,

Golo Haas

http://www.golohaas.de - the web the way you want it