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?
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.
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?
dazu sage ich dir, diese art und weise ist pervers !!!
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